2009-07-01 4 views
8

を実行私はクラスのモジュールを含む。ここでコード

class Something 
    # Defines the validates class methods, which is called upon instantiation 
    include Module 

    validates :name 
    validates :date 

end 

を有するように使用されるクラスである私は今、同じ機能を使用している複数のオブジェクト、および同様のものを定義している悪い、いくつかのオブジェクトを持っています、このように:

class Anotherthing 
    # Defines the validates class methods, which is called upon instantiation 
    include Module 

    validates :age 

end 

私は、これらのクラスの内容「再使用」にしたいので、私は、モジュールにそれらを回した:

module Something 
    # Defines the validates class methods which is called upon instantiation 
    include Module 

    validates :name 
    validates :date 

end 

module Anotherthing 
    # Defines the validates class methods which is called upon instantiation 
    include Module 

    validates :age 

end 

そして私は今

クラスを作成することができます
class ADualClass 
    include Something 
    include Anotherthing 
end 

私が持っている問題は、「検証:ものは」ようだ...私はADualClassオブジェクトを作成するときに検証しメソッドが呼び出されていないことであると呼ばれることはありません。何故ですか?これを強制するにはどうすればいいですか?

答えて

14

モジュールでは、たとえば次のように定義する必要があります。

def self.included(base) 
    base.validates :name 
    base.validates :date 
end 
関連する問題