這可能是一個愚蠢的問題,但我找不到解決方案。在after_save中調用類方法
我有一個簡單的模型,使用類方法update_menu
,我希望在每次保存實例後調用它。
Class Category
attr_accessible :name, :content
def self.menu
@@menu ||= update_menu
end
def self.update_menu
@@menu = Category.all
end
end
那麼,什麼是正確的語法,以獲得after_filter
呼叫update_menu
?
我想:
after_save :update_menu
但它看起來對實例的方法(不存在),而不是類。
感謝您的回答。
你是對的繼承,我只是鍵入它給內容。然而,這是一個品味的問題;-)否?將方法保持在類級而不是實例級。因爲它只更新一個類變量。有沒有辦法指定它是after_save中的類方法?你總是不得不依靠實例方法? – microcosme 2012-07-10 14:04:45
您正在考慮錯誤方向的問題。是的,你正在更新一個類變量,但是在保存一個**實例**後觸發回調。它是一個實例變量的回調...不是對類的回調,因爲不能「保存」一個類。 – Dty 2012-07-10 15:29:08