Rails Model уникальность нескольких столбцов
Я делаю модель Viewer с
belongs_to :users
belongs_to :orders
который объединяет модели пользователей и заказов с :has_many :through => :viewers
,
И модель Viewer имеет атрибуты user_id
а также order_id
,
Как бы я настроить его так, чтобы новые зрители были приняты только если оба user_id
а также order_id
уникальны в одном ряду? Я помню, как в MySQL это можно было делать с флагом (хотя я не могу вспомнить, что это было за жизнь), но я не уверен, как это сделать с Rails.
Могу ли я сделать что-то вроде (для Viewer.rb) validates_uniqueness_of :user_id, :scope => :order_id
?
1 ответ
Решение
Ой. Я думаю, что способ сделать это заключается в следующем:
в файле миграции модели Viewer (то есть: я должен был сделать это раньше)
def self.up
#create_table code
end
add_index :viewers, [:user_id, :order_id], :unique => true
end