У меня есть модель, которая использует несколько пользовательских 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
Как я уже говорил в комментариях, добавив метод «атрибуты», который возвращает пустой массив решает проблему.
Возможно, начните с размещения своего кода? –
Я как-то перешел к проблеме временно, добавив метод 'attributes', который возвращает пустой массив в мои валидаторы. – nvn