我在用户(User)和客户端(Client)之间建立了has_and_belongs_to_many关联。clients_users表格拥有User和Client的索引。 我的模型如下:
class User < ActiveRecord::Base
rolify
has_and_belongs_to_many :clients
end
class Client < ActiveRecord::Base
resourcify
has_and_belongs_to_many :users
end
我的控制器如下:
class Admin::ClientsController < ApplicationController
load_and_authorize_resource
end
class Admin::UsersController < ApplicationController
load_and_authorize_resource
end
我需要在我的ability.rb文件中添加类似以下内容的代码。
user ||= User.new # guest user (not logged in)
can :read, :all
can :manage, Client, :clients_users => { :user_id => user.id }
只有在clients_users表中存在一个用户ID和该客户端的ID记录时,我才能管理客户端。我该如何让它工作?
|c|
而不是|p|
,但即使如此它仍然无法工作(更多信息请参见已接受的答案)。无论如何,谢谢。 - yazoou