2010-05-20 4 views
0

Je fais un modèle Viewer avecRails Modèle à plusieurs colonnes unique

belongs_to :users 
belongs_to :orders 

qui relie les modèles utilisateurs et commandes avec un :has_many :through => :viewers. Le modèle Viewer a les attributs user_id et order_id.

Comment est-ce que je le configurerais de sorte que les nouveaux spectateurs ne soient acceptés que si user_id et order_id sont uniques dans la même rangée? Je me souviens en MySQL d'être capable de le faire avec un drapeau (bien que je ne puisse pas me souvenir de ce que c'était), mais je ne suis pas sûr de savoir comment le faire avec Rails. Est-ce que je peux faire quelque chose comme (pour Viewer.rb) validates_uniqueness_of :user_id, :scope => :order_id?

Répondre

0

Oh. Je pense la façon de le faire est la suivante:

dans le fichier de migration de modèle Viewer (ex: je l'ai fait plus tôt)

def self.up 
    #create_table code 
    end 

    add_index :viewers, [:user_id, :order_id], :unique => true 
end 
Questions connexes