Как проверить уникальность в 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]}