2009-10-27 2 views
72

Мне нужно проверить уникальность двух полей в объекте (строке), прежде чем добавлять их. Employee_id и area_id - это два поля в моей таблице emp_area. Может быть несколько записей с одинаковыми идентификаторами employee_id и несколькими записями с одним и тем же domain_id, но никакие две записи не могут иметь один и тот же employee_id и тот же area_id. Это похоже на два поля, составляющих первичный ключ или уникальный ключ.Как проверить два поля для уникальности

Как это сделать.

Благодаря

+0

Это было это спасибо! – johnc

+0

Возможный дубликат [Как вы проверяете уникальность пары идентификаторов в Ruby on Rails?] (Http://stackoverflow.com/questions/923796/how-do-you-validate-uniqueness-of-a-pair- of-ids-in-ruby-on-rails) –

ответ

69
validates_uniqueness_of :employee_id, :scope => :area_id 
96

, что об этом решении Validate combined values

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

Это кажется предпочтительным по сравнению с 'validates_uniqueness_of', поскольку оно позволяет вам устанавливать множественные проверки в одной и той же форме, например 'присутствие: true'. –

+0

Для правильного выделения сообщений об ошибках, которые я создал, также validates: area_id, уникальность: {scope: employee_id} – Mauro