rails 3 validation on uniqueness on multiple attributes

denisjacquemin picture denisjacquemin · Jul 18, 2010 · Viewed 107.8k times · Source

I use Rails 3.0.0.beta4

I want to add a validation on uniqueness on two attributes, that means that my model is valid if the couple of 'recorded_at' and 'zipcode' is unique.

On one attribute here is the syntax

validates :zipcode, :uniqueness => true

thanks

Answer

Christian Lescuyer picture Christian Lescuyer · Jul 18, 2010

In Rails 2, I would have written:

validates_uniqueness_of :zipcode, :scope => :recorded_at

In Rails 3:

validates :zipcode, :uniqueness => {:scope => :recorded_at}

For multiple attributes:

validates :zipcode, :uniqueness => {:scope => [:recorded_at, :something_else]}