0

如果我有如下用户、客户端和请求模型:

#user.rb


#client.rb
has_one :user
has_many :requests

#request.rb
belongs_to :client

我使用用户模型进行 CanCanCan 身份验证。内部能力类我想为客户指定能力。我想让用户只允许阅读,更新属于他的请求。她是我尝试的:

def client
  can [:read,:update], [Request], ['client_id = ?', user.client_id] do |client|
      ......something here
  end
end

4

2 回答 2

1
can [:read, :update], Request, :client_id => user.id
于 2015-06-22T06:46:11.693 回答
1

这是最简单的选择:

can [:read, :update], Request, :client_id => user.id

如果你有比这更复杂的能力,那么你可以这样做:

can [:read, :update], Request do |request|
  request.client_id == user.id
end
于 2015-06-22T07:08:47.870 回答