我正在尝试使用 cancan gem 解决用户的能力问题。公司和用户通过 user_company_assignment 关联,这样公司有很多用户,用户拥有并属于许多公司 下面是两个模型的代码和具有初始化角色继承和卖方用户方法的能力.rb 片段,但这不起作用,它总是向我显示公司详细信息。
公司.rb
has_many :user_company_assignments
has_many :user, :through => :user_company_assignments
用户.rb
has_many :user_company_assignments
has_many :companies, :through => :user_company_assignments
能力.rb
def initialize(user)
@user = user || User.new # for guest
@user.roles.each { |role| send(role.name.downcase) }
end
def seller
can :manage, :all
cannot :destroy, :all
can :show, Company do |company|
company.user_ids.include? @user.id
end
end