2012-05-05 3 views
0

У меня есть модель, которая использует несколько пользовательских ValidModel Validators. При установке rails_admin, я получаю следующее сообщение об ошибкеrails_admin, mongoid и проблемы с настраиваемыми ValidModel Validators

.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

Я как-то перешел к проблеме временно, добавив метод 'attributes', который возвращает пустой массив в мои валидаторы. – nvn

ответ

Смежные вопросы