Rails - 为多态关联中的父级指定has_many

时间:2012-08-10 09:42:56

标签: ruby-on-rails ruby-on-rails-3 activerecord

我目前有一些型号:用户,经销商,销售和角色。 Role与Dealer和Sale有一个多态的belongs_to关系,并且belongs_to User(见下面的代码)。

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

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

非常感谢这里的任何帮助。

1 个答案:

答案 0 :(得分:0)

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

相关问题