Рельсы: вокруг * обратные вызовы
Я прочитал документацию по адресу http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html, но не понимаю, когда around_* обратные вызовы запускаются в отношении before_* и after_*.
любая помощь очень ценится.
спасибо.
2 ответов:
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
Comments