2012-08-10 5 views
0

J'ai actuellement quelques modèles: Utilisateur, Vendeur, Vente et Rôle. Role a une relation polymorphe belongs_to avec Dealer and Sale, et belongs_to User (voir code ci-dessous).Rails - spécifiant has_many pour un parent en association polymorphe

Ma question est la suivante: comment puis-je spécifier une relation has_many :dealers, :through => :roles sur User for Dealer and Sale? Le modèle auquel le modèle User doit être associé appartient à soit un revendeur ou une vente, et en tant que tel la relation dans ce format ne fonctionne pas.

class User < ActiveRecord::Base 
    has_many :roles 
    has_many :sales, :through => :roles 
    has_many :appraisals, :through => :roles 
    has_many :dealers, :through => :roles 
end 

class Dealer < ActiveRecord::Base 
    has_many :roles, :as => :role_originator 
    has_many :users, :through => :roles 
end 

class Sale < ActiveRecord::Base 
    has_many :roles, :as => :role_originator 
    has_many :users, :through => :roles 
end 

class Role < ActiveRecord::Base 
    belongs_to :role_type 
    belongs_to :user 
    belongs_to :role_originator, :polymorphic => true 
end 

J'apprécierais toute assistance ici.

Répondre

Questions connexes