Class: Mongoid::Validations::UniquenessValidator
- Inherits:
-
Object
- Object
- Mongoid::Validations::UniquenessValidator
- Defined in:
- lib/mongoid-encrypted-fields/mongoid3/validations/uniqueness.rb
Overview
Monkey-patch for Mongoid’s uniqueness validator to enforce that the :case_sensitive option does not work for encrypted fields; they must always be case-sensitive. Patch is confirmed to work on Mongoid >= 3.0.0
Instance Method Summary collapse
- #setup_with_validation(klass) ⇒ Object (also: #setup)
Instance Method Details
#setup_with_validation(klass) ⇒ Object Also known as: setup
11 12 13 14 15 16 17 18 |
# File 'lib/mongoid-encrypted-fields/mongoid3/validations/uniqueness.rb', line 11 def setup_with_validation(klass) setup_without_validation(klass) return if case_sensitive? attributes.each do |attribute| field_type = @klass.fields[@klass.database_field_name(attribute)].[:type] raise ArgumentError, "Encrypted field :#{attribute} cannot support case insensitive uniqueness" if field_type && field_type.method_defined?(:encrypted) end end |