私はでドキュメントを読んで持って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