2012-04-16 11 views
0

私はモジュールを含む必要があるUserというクラスがあります。 クラスには、次のようになります。Railsモジュールの問題 - 未定義のメソッド 'validates_email' for user:クラス

require 'sequel' 
require 'modules/validations' 

class User < Sequel(..) 
    many_to_one :country 
    includes ::Validations 

    validates_email(:email) 
end 

モジュールは、モジュールと呼ばれるサブフォルダに定義されています。これは$ LOAD_PATHに追加されており、Rubyはロードに関する不満はありません。モジュールは次のようになります。私は取得しています

module Validations 
    def validates_email(attr, options = {}) 
     email = super.email 
    end 
end 

エラーがある:ユーザーのための 未定義のメソッド「validates_email」:クラスを私はきちんとこの仕事をするために行方不明です何

答えて

0

モジュールを使用してクラスメソッドを定義する場合は、extendsメソッドを使用する必要があります。

class User < Sequel(..) 
    extend ::Validations 
    validates_email(:email) 
    ... 
end 

私はこの記事を読んでお勧め:http://railstips.org/blog/archives/2009/05/15/include-vs-extend-in-ruby/

+0

これは、モジュールのおかげを含むため、問題を解決しました。このモジュールのクラスから変数にアクセスできますか? –

+0

あなたはそれらに普通にアクセスできるはずです – gmalette

+0

これは「伸ばす」ではなく、「伸ばす」べきではありませんか? – rpearce

関連する問題