我有 3 个模型,用户、经销商和角色,如下所示:
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
关联按预期工作 - 例如,我可以dealer.users
获取在该经销商处担任角色的所有用户。
我遇到的问题是我希望能够执行dealer.users.first.roles
并仅返回与该经销商关联的角色,但目前它返回与用户关联的所有角色,无论它们是否引用另一个经销商.
如何修改我的模型以允许dealer.users.first.roles
仅返回与所选经销商和用户关联的角色,而不是用户的所有角色?