http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html でドキュメントを読みましたが、around_*
およびbefore_*
に関連してafter_*
コールバックがトリガーされるタイミングがわかりません。
助けていただければ幸いです。
ありがとう。
around_*
コールバックが呼び出されますbeforeアクション。アクション自体を呼び出す場合は、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