1
我通過聯接表將用戶與給定公司關聯,因爲我需要能夠爲每個公司提供一羣用戶,反之亦然。專家通過聯合表來確定模型所有權範圍 - Rails 4
class User
has_many :firm_connections, dependent: :destroy
has_many :firms, through: :firm_connections
end
class FirmConnection
belongs_to :user
belongs_to :firm
end
class Firm
has_many :firm_connections
has_many :users, through: :firm_connections
end
我的問題是,當用戶點擊了企業的索引頁,我怎麼範圍爲只顯示什麼這些用戶有關聯?
class FirmPolicy < ApplicationPolicy
class Scope < Scope
def resolve
if user.admin?
scope.all
else
scope.where #only the firms associated with that user
end
end
end
我是否需要在接受@user的公司級別創建範圍?或者我可以直接內聯這樣做嗎?我可以一起破解一些東西,但是還沒有將我的頭圍繞專家,所以任何方向都將不勝感激!
這樣的:
def self.associated_with(user)
all.select { |m| m.users.include?(user) }
end