class Soulless::Validations::UniquenessValidator
Public Class Methods
new(options)
click to toggle source
Calls superclass method
# File lib/soulless/validations/uniqueness_validator.rb, line 4 def initialize(options) raise 'ActiveRecord is not defined. The Soulless uniqueness validator cannot be used when ActiveRecord is not present.' unless Object.const_defined?('ActiveRecord') @model = options[:model] @attribute = options[:attribute] options.merge!(class: @model) @validator = ActiveRecord::Validations::UniquenessValidator.new(options) super(options) end
Public Instance Methods
validate_each(record, attribute, value)
click to toggle source
# 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, options.except(:case_sensitive, :scope).merge(value: value)) end end end