mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
ActiveModel::Validator#validate must receive have a record parameter.
This commit is contained in:
parent
f8cfa454e5
commit
29399e00c9
1 changed files with 3 additions and 6 deletions
|
@ -417,7 +417,7 @@ class Person < ActiveRecord::Base
|
|||
end
|
||||
|
||||
class GoodnessValidator < ActiveModel::Validator
|
||||
def validate
|
||||
def validate(record)
|
||||
if record.first_name == "Evil"
|
||||
record.errors[:base] << "This person is evil"
|
||||
end
|
||||
|
@ -427,10 +427,7 @@ end
|
|||
|
||||
The +validates_with+ helper takes a class, or a list of classes to use for validation. There is no default error message for +validates_with+. You must manually add errors to the record's errors collection in the validator class.
|
||||
|
||||
The validator class has two attributes by default:
|
||||
|
||||
* +record+ - the record to be validated
|
||||
* +options+ - the extra options that were passed to +validates_with+
|
||||
To implement the validate method, you must have an +record+ parameter defined, which is the record to be validated.
|
||||
|
||||
Like all other validations, +validates_with+ takes the +:if+, +:unless+ and +:on+ options. If you pass any other options, it will send those options to the validator class as +options+:
|
||||
|
||||
|
@ -440,7 +437,7 @@ class Person < ActiveRecord::Base
|
|||
end
|
||||
|
||||
class GoodnessValidator < ActiveRecord::Validator
|
||||
def validate
|
||||
def validate(record)
|
||||
if options[:fields].any?{|field| record.send(field) == "Evil" }
|
||||
record.errors[:base] << "This person is evil"
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue