我玩弄新的Rails 3 API和我有一個關於新方法的問題run_callbacks(kind, *args, &block)的Rails 3 run_callbacks方法
在下面的代碼:
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回調?
回顧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)
運行全部保存回調(之前和之後)。
是的,好像我們無法在'之前'或'之後'單獨保存回調:(至少以更清晰的方式:P – jpemberthy 2010-09-24 21:05:12
@jpemberthy - 如果您更新您的問題的具體用途或許我們可以找出一種解決方法,直到解決了該錯誤爲止? – Brian 2010-09-24 22:19:46
謝謝,但這不是必需的,我只是在玩新的API(感謝上帝)。從2.3.x或其他東西遷移我正在研究:P – jpemberthy 2010-09-26 21:41:43