小编yaz*_*oou的帖子

has_and_belongs_to_many 关联的 CanCanCan 权限

我在用户和客户端之间有 has_and_belongs_to_many 关联。表clients_users 有用户和客户端的索引。我的模型是:

class User < ActiveRecord::Base
  rolify
  has_and_belongs_to_many :clients
end

class Client < ActiveRecord::Base
  resourcify
  has_and_belongs_to_many :users
end
Run Code Online (Sandbox Code Playgroud)

我的控制器是:

class Admin::ClientsController < ApplicationController
  load_and_authorize_resource
end

class Admin::UsersController < ApplicationController
  load_and_authorize_resource
end
Run Code Online (Sandbox Code Playgroud)

我的能力中需要这样的东西.rb

user ||= User.new # guest user (not logged in)

can :read, :all
can :manage, Client, :clients_users => { :user_id => user.id }
Run Code Online (Sandbox Code Playgroud)

因此,只有当 clients_users 表中的记录包含该客户端的 user_id 和 id 时,我才能管理客户端。我如何使它工作?

ruby-on-rails relationship cancan

3
推荐指数
1
解决办法
973
查看次数

标签 统计

cancan ×1

relationship ×1

ruby-on-rails ×1