名前の配列を持つモデルがあり、1 つのドキュメントだけが特定の名前を持つことができるようにしたいと考えています。これを処理するカスタム検証を作成しようとしています。私のカスタム検証とモデルは、現時点では次のようになります。
lib/unique_name_validator.rb
class UniqueNamesValidator < ActiveModel::EachValidator
def validate_each( record, attribute, value )
end
end
アプリ/モデル/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 を使用しようとしましたが、どちらも機能しません。