Reputation: 36273
I would like to validate attributes in a function like this
class User < ActiveRecord::Base
validate :check_name( :name )
def check_name( name )
... if name is invalid ...
self.errors.add( :name, 'Name is invalid')
end
end
Can you please write the right code? Please explain the functionality why... THX!
Upvotes: 1
Views: 1213
Reputation: 176552
class User < ActiveRecord::Base
validate :check_name
def check_name
if name # is invalid ...
self.errors.add(:name, 'Name is invalid')
end
end
end
You can use the validate
macro but the method can't accept parameters.
You need to fetch the attribute value from inside the method, then validate it.
Replace
if name # is invalid ...
with your own validation logic.
Upvotes: 6