Hi everyone,
I just need a quick help 
What is the best way to write some code in :presence option?
I have a Question model and one of the fields is question_type:
- example question
- static question
Each question has alternatives, and each of them has scores
What I want is to validate the presence of :score, but when its only
on the static question.
I dont want to validate the presence of the score in examples
validates :score, :presence => {:if => ??? }
What should I do?
Thanks
Javier Q
Well I found the code here:
validates :score, :presence => true, :if => Proc.new{ (some code
here) }
Well I found the code here:
http://stackoverflow.com/questions/1673812/rails-validation-for-users-email-only-want-it-to-validate-when-a-user-signs-up
validates :score, :presence => true, :if => Proc.new{ (some code
here) }
while this may work in your case, you should remember the following (a shameless copy
and paste from the api)
Finally, the options :if
, :unless
, :on
, :allow_blank
and :allow_nil
can be given to one specific validator, as a hash:
validates :password, :presence => { :if => :password_required? }, :confirmation => true
Or to all at the same time:
validates :password, :presence => true, :confirmation => true, :if => :password_required?
one more thing. I find it cleaner to do what you need like this
validates :score, :presence => {:if => :static?}
def static?
#code here
end
def example?
#code here
end
Cheers!
Thank! that’s what I found on api, but I wasnt sure if it was the best way of doing that (and by that I mean the easier way to do that “filter”)
I’ll try what you mention because I wasn’t sure enough what":password_required?" mean ( I tought it was a sort of helper…
)
Javier Q