首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CanCanCan授权关联对象

CanCanCan授权关联对象
EN

Stack Overflow用户
提问于 2015-02-20 08:52:40
回答 1查看 332关注 0票数 0

我的Routes.rb:

代码语言:javascript
复制
resources :users
resources :clients do
  resources :branches
end

我在Ability.rb上有这个。用户只能更新自己的客户端。

代码语言:javascript
复制
  can [:update], Client, :id => user.clients.pluck(:id)

用户还应该能够:创建、:update、:显示属于客户端的分支。它可能看起来像这样:

代码语言:javascript
复制
  can [:create, :update, :show], Branch, :client => { :id => user.clients.pluck(:id) }

它适用于:update,:show,但不适用于:create。这是因为新分支在创建之前没有client_id。我如何使它发挥作用:创造?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-27 17:12:15

您当前的能力实际上不是对分支上的外键字段调用检查。像这样使用嵌套是在调用等效的client.id,而不是您想要的client_id

应改为:

can [:create, :update, :show], Branch, client_id: user.client_ids

或者,保持与你的风格一致:

can [:create, :update, :show], Branch, client_id: user.clients.pluck(:id)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28624916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档