2009-06-12 6 views
0

私は10のモデルとそれらの3に起こるいくつかの追加のカスタムメソッドを必要としています。ActiveRecordのモデルのカスタムメソッドの追加は

ActiveRecord:Baseのカスタムサブクラスを作成し、そこにメソッドを定義し、そこから3つのモデルを継承させることができます。しかし、これを達成するためのより多くの "Ruby/Rails"の方法がありますか?

乾杯

答えて

1

module StagedVersionStuff 

    def has_staged_version? 

    end 

    def apply_staged_version 

    end 

    def discard_staged_version 

    end 
end 

を持っているし、その後のモデルで、あなたが

include StagedVersionStuff 

を持ってこれらのメソッドを持つようにしたいですクラスには以下が含まれます:

module StagedVersionMethods 
    def has_staged_version? 
    end 

    def apply_staged_version 
    end 

    def discard_staged_version 
    end 
end 

Model.send :include, StagedVersionMethods 
+0

大変感謝しています。これは私が後にしたことのようなものです。 – Paul

0

あなたのクラスは何をしていますか?サブクラスかモジュールを使用するかどうかの選択は、クラス自身がであることを基にしたセマンティクスの問題です。です。

関連する問題