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
あります。
おそらくあなたのコードを投稿することから始めますか? –
私はバリデーターに空の配列を返す '属性'メソッドを追加することで、一時的に問題を解決しました。 – nvn