Class: Reform::Form::ActiveRecord::UniquenessValidator
- Inherits:
-
ActiveRecord::Validations::UniquenessValidator
- Object
- ActiveRecord::Validations::UniquenessValidator
- Reform::Form::ActiveRecord::UniquenessValidator
- Defined in:
- lib/reform/form/active_record.rb
Instance Method Summary collapse
-
#validate(form) ⇒ Object
when calling validates it should create the Vali instance already and set @klass there! # TODO: fix this in AM.
Instance Method Details
#validate(form) ⇒ Object
when calling validates it should create the Vali instance already and set @klass there! # TODO: fix this in AM.
22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/reform/form/active_record.rb', line 22 def validate(form) property = attributes.first # here is the thing: why does AM::UniquenessValidator require a filled-out record to work properly? also, why do we need to set # the class? it would be way easier to pass #validate a hash of attributes and get back an errors hash. # the class for the finder could either be infered from the record or set in the validator instance itself in the call to ::validates. record = form.model_for_property(property) record.send("#{property}=", form.send(property)) @klass = record.class # this is usually done in the super-sucky #setup method. super(record).tap do |res| form.errors.add(property, record.errors.first.last) if record.errors.present? end end |