Правильный способ проверки уникальности для нескольких столбцов - PullRequest
3 голосов
/ 03 августа 2011

Допустим, у меня есть уникальный индекс для таблицы:

add_index :events, [:venue_id, :act_id, :occurs_on], :unique => true

Теперь, если я хочу проверить это в модели, я должен сделать это:

validates_uniqueness_of :venue_id, :scope => [:act_id, :occurs_on]

или:

validates_uniqueness_of :venue_id, :scope => [:act_id, :occurs_on]
validates_uniqueness_of :act_id, :scope => [:venue_id, :occurs_on]
validates_uniqueness_of :occurs_on, :scope => [:venue_id, :act_id]

1 Ответ

3 голосов
/ 03 августа 2011

Ваше первое ограничение уникальности переводится как «В таблице может быть только один из любого конкретного кортежа venue_id, act_id и coming_on.»Поэтому необходимо только первое утверждение проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...