У меня есть модель с массивом имен, и я хочу убедиться, что только один документ может иметь данное имя. Я пытаюсь написать пользовательскую проверку, чтобы справиться с этим. Моя пользовательская проверка и модель на данный момент выглядят так:
lib/unique_name_validator.rb
class UniqueNamesValidator < ActiveModel::EachValidator
def validate_each( record, attribute, value )
end
end
app/models/MyModel.rb
class MyModel
include Mongoid::Document
validates :names, :unique_names => true
field :names, :type => Array
end
Но я получаю Неизвестный валидатор: 'unique_names' (ArgumentError). В документации Mongoid говорится, что каждая модель включает ActiveModel :: Validation, что, как я думал, позволит им работать с моими пользовательскими проверками. Я также пытался сделать валидацию, которая наследуется от ActiveModel :: Validator, и использовать validates_with, но это тоже не работает.