0

我目前有一些模型:用户、经销商、销售和角色。Role 与 Dealer 和 Sale 以及 belongs_to User 具有多态的 belongs_to 关系(参见下面的代码)。

我的查询是这样的:如何指定has_many :dealers, :through => :roles经销商和销售用户的关系?User 模型将通过belongs_to 关联到Dealer 或Sale 的角色模型,因此这种格式的关系不起作用。

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

将不胜感激这里的任何帮助。

4

1 回答 1

0

在我发现 :source 选项后,我能够解决这个问题 - 请参阅http://guides.rubyonrails.org/association_basics.html#has_many-association-reference(第 4.3.2.20 部分)。

于 2012-08-12T11:32:05.047 回答