Как проверить уникальность в Rails 3 Model, если я хочу проверить, есть ли комбинация из двух полей?
Я хочу знать, есть ли способ в Rails 3, в котором я могу проверить уникальность двух полей, которые идут в комбинации.
Логика идет следующим образом:
У меня есть два поля employee_code
и date_entry
.
-
Случай 1: Если комбинация employee_code
и date_entry
уже существует, она не позволит сохранить другую запись с теми же employee_code
и date_entry
.
-
Случай 2: Если существуют employee_code
и date_entry
, но не на одной записи, это позволит сохранить поле.
Ответы
Ответ 1
validates_uniqueness_of :employee_code, :scope => [:date_entry]
Три и более столбцов, все, что вам нужно сделать, это добавить элементы в список областей:
validates_uniqueness_of :employee_code, :scope => [:date_entry, :another_column]
или Rails 3:
validates :employee_code, :uniqueness => {:scope => :date_entry}
Ответ 2
Это для Rails 3:
Чтобы сделать это всего за 2 столбца, вы можете просто сделать что-то вроде:
validates: empcode,: uniqueness = > {: scope = > : date_entry}
Для более чем двух столбцов вы можете сделать что-то вроде:
validates: empcode,: uniqueness = > {: scope = > [: date_entry,: description]}