Я играю с новым Rails 3 API, и у меня есть вопрос относительно нового метода run_callbacks (kind, * args, & block)
В следующем коде:
class User < ActiveRecord::Base
before_save :say_hi
after_save :say_bye
private
def say_hi; puts "hi"; end
def say_bye; puts "bye"; end
end
Я могу явно вызвать обратные вызовы при сохранении, выполнив:
> u.run_callbacks(:save)
hi
bye
=> true
Но мой вопрос , как я могу только выполнить before_save или after_save callback?
Просмотр кода run_callbacks(kind, *args, &block)
:
# File activesupport/lib/active_support/callbacks.rb, line 92
def run_callbacks(kind, *args, &block)
send("_run_#{kind}_callbacks", *args, &block)
end
Я не знаю, как построить *args
для вызова только до или после обратных вызовов, я пробовал что-то вроде u.run_callbacks(:before_save)
(выдает ошибку неопределенного метода) и u.run_callbacks(:save, :before)
запускает все обратные вызовы save ( до и после ).