いつもお世話になっております。
最近、Rubyを始めたものですが、イマイチまだ文法に馴染めてません。
自作のプラグインを作成しているところで詰まりました・・・・。
(記事を作成・更新時にhookしてステータスと時間をチェックするプラグインです)
[plugin/XXXXXX/init.rb]
ruby
1require 'redmine' 2require 'dispatcher' unless Rails::VERSION::MAJOR >= 3 3 4Redmine::Plugin.register :test_plugin do 5(文字数割愛の為に省略) 6end 7 8if Rails::VERSION::MAJOR >= 3 9 ActionDispatch::Callbacks.to_prepare do 10 require_dependency 'issue' 11 unless Issue.included_modules.include? TestPlugin::IssuePatch 12 Issue.send(:include, TestPlugin::IssuePatch) 13 end 14 end 15else 16 Dispatcher.to_prepare do 17 require_dependency 'issue' 18 unless Issue.included_modules.include? TestPlugin::IssuePatch 19 Issue.send(:include, TestPlugin::IssuePatch) 20 end 21 end 22end
[lib/XXXXXX/issue_patch.rb]
ruby
1# -*- codind: utf-8 -*- 2module TestPlugin 3 module IssuePatch 4 5 def self.included(base) # :nodoc: 6 base.send(:include, InstanceMethods) 7 8 base.class_eval do 9 unloadable 10 before_save :test_plugin 11 end 12 end 13 14 module InstanceMethods 15 16 private 17 def test_plugin 18 is_status_change_check = false 19 is_error = false 20 21 check_estimated_hours = estimated_hours.to_f 22 unless id.nil? 23(記事の新規 or 更新によって時間を取得する処理) 24 end 25 26 if project.enabled_module_names.include?('test_plugin') 27 is_status_change_check = true 28 end 29 30↓ ☆質問☆ errors.addでエラー(赤枠メッセージ)は返せたのですが 31 elseの際に行いたい通常(緑枠メッセージ)が返せません。 32 何か良い方法はありまあすでしょうか?↓ 33 if status_id == 3 && check_total_spent_time == 0 34 if is_status_change_check 35 errors.add(:base, ::I18n.t('my_label')) 36 is_error = true 37 else 38 39 end 40 end 41 42 if is_error 43 return false; 44 else 45 return true; 46 end 47 end 48 end 49 end 50end
まだ、イマイチ、スコープ等が分かっておらず、flash[:notice]でメッセージを
出力しようとしたら下記のエラーとなりました。
お知恵を貸して頂けますと非常に助かります。。
~~~
NameError (undefined local variable or method flash' for #<Issue:0x007f97bf16cb88>): app/models/issue.rb:175:in
create_or_update'
app/controllers/issues_controller.rb:497:in `block in save_issue_with_child_records'
~~~
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。