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
Другие вопросы по тегам