Jim Burgess wrote:
> Hi,
>
> If I want to ensure that someone has filled out the email section of a
> form I can write this in my model:
>
> validates_presence_of :email
>
> I can also achieve (more or less) the same thing by writing:
>
> validate do |applicant|
> applicant.validate_presence("email")
> end
>
> def validate_presence(arg)
> string = "errors.add(:#{arg}, \"can't be blank\") if #{arg} == \"\""
> eval(string)
> end
Here's the eval-less version:
def validate_presence(arg)
errors.add arg.to_sym, "can't be blank" if self.send(arg).blank?
end
Of course, since this is ActiveRecord, you could use self[arg] instead
of self.send(arg) in most cases, but it's not quite equivalent. (I also
took the liberty of using blank? .)
Best,
--
Marnen Laibow-Koser
http://www.marnen.org
[email protected]
--
Posted via http://www.ruby-forum.com/.
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.