1
我有3种型号,用户,经销商和角色,看起来如下:导轨 - 中的has_many协会限制结果
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
仅返回与所选经销商和用户关联的角色,而不是用户的所有角色?