Rails3.0.5とRuby1.9.3では、宣言around_save
とインラインでコールバックの本体を定義することは可能ですか?around_save
つまり、このケースが適切に機能することに気づきました。
around_save :around_save_body
def around_save_body
puts 'before save'
yield
puts 'after save'
end
[114] pry(main)> a = Activity.find(57)
=> #<Activity id: 57, ... >
[115] pry(main)> a.save
before save
after save
=> true
一方、本文をインラインにすると、LocalJumpErrorが発生します。
around_save do |activity|
puts 'before save'
yield
puts 'after save'
end
[117] pry(main)> a = Activity.find(57)
=> #<Activity id: 57, ... >
[118] pry(main)> a.save
before save
LocalJumpError: no block given (yield)
from /home/maksim/hkn/website/app/models/activity.rb:47:in `block in <class:Activity>'
2番目の例でに変更yield
してみyield activity
ましたが、同じ結果が得られました。私のaround_save
体をaround_save
宣言と一致させることは可能ですか?