rails 3验证多个属性的唯一性

时间:2010-07-18 15:27:16

标签: ruby-on-rails validation

我使用Rails 3.0.0.beta4

我想在两个属性上添加唯一性验证,这意味着如果'recorded_at''zipcode'的一对是唯一的,我的模型就有效。

这里的一个属性是语法

validates :zipcode, :uniqueness => true

感谢

3 个答案:

答案 0 :(得分:322)

在Rails 2中,我会写:

validates_uniqueness_of :zipcode, :scope => :recorded_at

在Rails 3中:

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

对于多个属性:

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

答案 1 :(得分:93)

多个范围参数:

class TeacherSchedule < ActiveRecord::Base
  validates_uniqueness_of :teacher_id, :scope => [:semester_id, :class_id]
end

http://apidock.com/rails/ActiveRecord/Validations/ClassMethods/validates_uniqueness_of

这应该回答格雷格的问题。

答案 2 :(得分:4)

不要为我工作,需要将范围置于复数

  

validates_uniqueness_of:teacher_id,:范围 s =&gt; [:semester_id,   :类标识码]