2011-11-17 53 views
0

我希望有一些很明顯我缺少在這裏,我想不出理由,爲什麼你不應該能夠通過在after_update調用方法參數:Rails 3.1,after_update過程不接受方法參數?

class Card < ActiveRecord::Base 
    after_update :create_thumb(100) 

    def create_thumb(size) 
    ... 

這不會開機。如果我在方法中硬編碼的大小,它工作正常。是否有一些時髦的語法來做到這一點或不可能?

謝謝。

回答

2

您可以傳遞一個Proc和調用的方法裏面:

class Card < ActiveRecord::Base 
    after_update { create_thumb(100) } 

    def create_thumb(size) 
    ... 
+0

感謝。這些小東西對於新手來說很難從文檔中找出來。 – RSG

1

可以在這樣的方法設置的默認值:

class Card < ActiveRecord::Base 
    after_update :create_thumb 

    def create_thumb(size = 100) 
    ... 
+0

實際上,這和這個方法中的'size'硬編碼沒有什麼區別。這是一個默認值,但無法更改,因爲仍然無法傳遞其他值並覆蓋默認值。 – clem