J'ai un modèle, qui a et tableau de noms et je veux m'assurer qu'un seul document peut avoir un nom donné. J'essaie d'écrire une validation personnalisée pour gérer cela. Ma validation personnalisée et le modèle ressemblent à ceci au moment:Mongoid: Comment faire pour que Mongoid reconnaisse mes validations ActiveModel personnalisées?
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
Mais je me validateur inconnu: 'unique_names' (ArgumentError). La documentation de Mongoid indique que chaque modèle inclut ActiveModel :: Validation, que je pensais leur permettre de travailler avec mes validations personnalisées. J'ai également essayé de faire une validation qui hérite de ActiveModel :: Validator et utilise validates_with, mais cela ne marche pas non plus.