2015-02-17 43 views
1

我們可以稱之爲一個內部方法,在軌這樣Rails的回調來調用外部方法

after_commit :my_method, on: :create 

但是我們如何調用外部方法?我試過

after_commit {MyClass.my_method}, on: :create 

它根本不工作。

謝謝你的幫助!

+0

你得到什麼錯誤? – lurker 2015-02-17 21:22:51

+0

您是否刪除了{}'? – radubogdan 2015-02-17 21:23:13

+0

不確定,但應該使用'after_commit myclass.my_method,on :: create'或者在你的Model和'after_commit foo_method,on:create'中創建一個私有方法,其中foo_method返回'self.myclass.my_method'。 – radubogdan 2015-02-17 21:26:31

回答

1

基本上,你必須創建一個lambda並通過在,而不是使用的符號:

after_commit -> { MyClass.my_method }, on: :create 
+0

完美!謝謝! – icn 2015-02-17 21:49:26

+0

不客氣。 – smathy 2015-02-17 21:55:34