Validates presence

Hi everyone,

I just need a quick help :slight_smile:

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… :slight_smile: )

Javier Q