Konrad
Konrad

Reputation: 1635

Rails model conditional vaidation

I validate fields in model using:

validates :first_name, :presence => true, :if => :should_validate?
validates :last_name, :presence => true, :if => :should_validate?
...

There are many fields in model that needs to be validated and it doesn't look good if I specify :if => method for each one.

Is it possible to embed this validates methods in block instead of giving :if => method for each one?

Upvotes: 0

Views: 256

Answers (3)

Chris Barretto
Chris Barretto

Reputation: 9529

What are the conditions that you need this validated? If you don't need it validated couldn't you just leave that line out? Otherwise you could just validate on certain actions so you don't need to evaluate for should_validate?, for example:

validates :first_name, :last_name, :presence => true, :only => [:create, :update]

Upvotes: 0

Sohan
Sohan

Reputation: 3807

I don't think there is something out of the box for this. If you want, you can use a custom validator.

Upvotes: 0

Jaap Haagmans
Jaap Haagmans

Reputation: 6342

You could write your own custom validator of course, but if you're only validating presence, this might do the trick:

validates :first_name, :last_name, :presence => true, :if => :should_validate?

Upvotes: 1

Related Questions