Ruby on rails 3 如果我想检查是否存在2字段组合,如何验证Rails 3模型中的唯一性?

Ruby on rails 3 如果我想检查是否存在2字段组合,如何验证Rails 3模型中的唯一性?,ruby-on-rails-3,model,Ruby On Rails 3,Model,我想知道Rails 3中是否有一种方法,可以验证组合在一起的两个字段的唯一性 逻辑是这样的: 我有两个字段employee\u code和date\u entry 案例1:如果employee\u code和date\u条目组合已存在,则不允许使用相同的employee\u code和date\u条目保存另一条记录 案例2:如果employee\u code和date\u条目存在,但不在同一条记录上,则允许保存该字段 三列或更多列,只需将元素添加到范围列表: validates_unique

我想知道Rails 3中是否有一种方法,可以验证组合在一起的两个字段的唯一性

逻辑是这样的:

我有两个字段
employee\u code
date\u entry

  • 案例1:如果
    employee\u code
    date\u条目
    组合已存在,则不允许使用相同的
    employee\u code
    date\u条目
    保存另一条记录

  • 案例2:如果
    employee\u code
    date\u条目
    存在,但不在同一条记录上,则允许保存该字段

三列或更多列,只需将元素添加到范围列表:

validates_uniqueness_of :employee_code, :scope => [:date_entry, :another_column]
或轨道3:

validates :employee_code, :uniqueness => {:scope => :date_entry}
这是针对Rails 3的:

validates :employee_code, :uniqueness => {:scope => :date_entry}
要仅使用2列完成此操作,您可以执行以下操作:

验证:empcode,:university=>{:scope=>:date\u entry}

对于超过2列,您可以执行以下操作:

验证:empcode,:university=>{:scope=>[:date\u条目,:description]}