私はでドキュメントを読んで持ってhttp://api.rubyonrails.org/classes/ActiveRecord/Callbacks.htmlが、時に理解していないaround_*
コールバックはとの関係でトリガさbefore_*
とafter_*
。
どんな助けも大歓迎です。
ありがとう。
私はでドキュメントを読んで持ってhttp://api.rubyonrails.org/classes/ActiveRecord/Callbacks.htmlが、時に理解していないaround_*
コールバックはとの関係でトリガさbefore_*
とafter_*
。
どんな助けも大歓迎です。
ありがとう。
回答:
around_*
コールバックはアクションの前に呼び出され、次にアクション自体を呼び出したい場合は、それを呼び出してyield
実行を続行します。それが呼ばれる理由ですaround
順序は次のようになります:before
、around
、after
。
したがって、通常around_save
は次のようになります。
def around_save
#do something...
yield #saves
#do something else...
end
around_ *コールバックは、アクションの前後、およびbefore_ *およびafter_ *アクションの内部で呼び出されます。例えば:
class User
def before_save
puts 'before save'
end
def after_save
puts 'after_save'
end
def around_save
puts 'in around save'
yield # User saved
puts 'out around save'
end
end
User.save
before save
in around save
out around save
after_save
=> true