2013-05-15 3 views
1

J'ai trois modèles suivants:Rails has_one par champ

class User < ActiveRecord::Base 
     ... 
     has_many :feeds 
     ... 
    end 

    class Project < ActiceRecord::Base 
     ... 
     has_many :feeds 
     has_many :users, through: :feeds 
     ... 
    end 

    class Feed < ActiveRecord::Base 
     ... 
     belongs_to :user 
     belongs_to :project 
     ... 
    end 

Je veux modéliser la situation dans laquelle un utilisateur peut avoir un maximum d'une alimentation par projet. Je sais que je peux effectuer cette vérification dans un validateur personnalisé dans la classe Feed, mais existe-t-il un moyen de modéliser ceci en utilisant uniquement les associations ActiveRecord?

Répondre

3

Vous pouvez le faire sur Feed.rb:

validates :user_id, :uniqueness => {:scope => :project_id} 
+0

Merci Anezio et désolé j'ai accepté votre réponse si tard. Exactement ce que je cherchais. – matt

Questions connexes