これは愚かな点かもしれませんが、解決策が見つかりません。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
あなたは間違った方向に問題を考えています。はい、クラス変数を更新していますが、**インスタンス**が保存された後にコールバックが発生します。これはインスタンス変数のコールバックです。クラスのコールバックではなく、クラスを「保存」することができないためです。 – Dty