如何验证两个字段的唯一性

73

在添加记录之前,我需要验证对象(行)中两个字段的唯一性。Employee_id和area_id是我emp_area表中的两个字段。可以有多条具有相同employee_id或相同area_id的记录,但是不能有两条记录同时具有相同的employee_id和area_id。这有点像两个字段组成主键或唯一键。

我该如何实现?

谢谢


可能是如何在Ruby on Rails中验证一对ID的唯一性?的重复问题。 - Ciro Santilli OurBigBook.com
2个回答

99

那么这个解决方案怎么样?验证组合值

validates :employee_id, uniqueness: { scope: :area_id }

3
相较于 validates_uniqueness_of,这似乎更受欢迎,因为它允许在同一表单上设置多个验证,例如 presence: true - Joshua Pinter
为了正确强调错误信息,我还创建了以下验证:validates :area_id, uniqueness: { scope: employee_id } - Mauro

69
validates_uniqueness_of :employee_id, :scope => :area_id

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接