2012-05-05 4 views
0

カスタムActiveModelバリデータを使用するモデルがあります。 rails_adminのインストール中に次のエラーが発生するrails_admin、mongoid、カスタムActiveModelバリデータの問題

.rvm/gems/ruby-1.9.2-head/bundler/gems/rails_admin-0d80b74a60e7/lib/rails_admin/adapters/mongoid.rb:340:in `block in length_validation_lookup': undefined method `attributes' for #<MyCustomValidator:0x00000105c5aca0 @options={}> (NoMethodError) 
    from .rvm/gems/ruby-1.9.2-head/bundler/gems/rails_admin-0d80b74a60e7/lib/rails_admin/adapters/mongoid.rb:339:in `select' 
    from .rvm/gems/ruby-1.9.2-head/bundler/gems/rails_admin-0d80b74a60e7/lib/rails_admin/adapters/mongoid.rb:339:in `length_validation_lookup' 
    from .rvm/gems/ruby-1.9.2-head/bundler/gems/rails_admin-0d80b74a60e7/lib/rails_admin/adapters/mongoid.rb:98:in `block in properties' 

モデル内のバリデーターコールをコメントアウトするとエラーになります。問題の解決策があるかどうか疑問に思っていました(rails_adminコードベースをハッキングする以外)。以下

私は空の配列が問題を解決し返す「属性」メソッドを追加すること、コメントで述べたようにスケルトンコード(関連する部分のみ)

class MyModel 
    include Mongoid::Document 
    .... 
    validates_with MyValidator 
end 

class MyValidator < ActiveModel::Validator 
    def validate(record) 
    end 
end 

あります。

+0

おそらくあなたのコードを投稿することから始めますか? –

+0

私はバリデーターに空の配列を返す '属性'メソッドを追加することで、一時的に問題を解決しました。 – nvn

答えて