Class: Soulless::Validations::UniquenessValidator
- Inherits:
-
ActiveModel::EachValidator
- Object
- ActiveModel::EachValidator
- Soulless::Validations::UniquenessValidator
- Defined in:
- lib/soulless/validations/uniqueness_validator.rb
Instance Method Summary collapse
-
#initialize(options) ⇒ UniquenessValidator
constructor
A new instance of UniquenessValidator.
- #validate_each(record, attribute, value) ⇒ Object
Constructor Details
#initialize(options) ⇒ UniquenessValidator
Returns a new instance of UniquenessValidator.
4 5 6 7 8 9 10 11 |
# File 'lib/soulless/validations/uniqueness_validator.rb', line 4 def initialize() raise 'ActiveRecord is not defined. The Soulless uniqueness validator cannot be used when ActiveRecord is not present.' unless Object.const_defined?('ActiveRecord') @model = [:model] @attribute = [:attribute] .merge!(class: @model) @validator = ActiveRecord::Validations::UniquenessValidator.new() super() end |
Instance Method Details
#validate_each(record, attribute, value) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/soulless/validations/uniqueness_validator.rb', line 13 def validate_each(record, attribute, value) if !@model raise ArgumentError, 'Missing required argument "model"' else record_orig, attribute_orig = record, attribute attribute = @attribute if @attribute record = @model.new(attribute => value) @validator.validate_each(record, attribute, value) if record.errors.any? record_orig.errors.add(attribute, :taken, .except(:case_sensitive, :scope).merge(value: value)) end end end |