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


73

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

我怎样才能做到这一点。

谢谢


Answers:


98

该解决方案如何验证组合值

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

3
与之相比validates_uniqueness_of,它似乎更可取,因为它允许您在同一表格上设置多个验证,例如presence: true
约书亚·品特

为了正确突出显示错误消息,我还创建了:area_id,唯一性:{scope:employee_id}
Mauro

69
validates_uniqueness_of :employee_id, :scope => :area_id
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.