首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cancancan授权嵌套资源

Cancancan授权嵌套资源
EN

Stack Overflow用户
提问于 2015-06-02 15:22:28
回答 1查看 593关注 0票数 0

我有一个帐户模型,它“有许多”用户,也有“许多”米。Meter对象有一个account_id列,因此很容易在Cancancan中定义这样的功能:

代码语言:javascript
复制
if user
  can :crud, Meter, :account_id => user.account_id
end

然而,一个米也“有许多”参数。我想做一个类似的能力定义,只允许CRUD访问,如果参数属于一个表,它属于同一个帐户的用户。

由于参数模型只有一个meter_id列(而不是一个account_id列),我不确定实现这个额外嵌套级别的最佳方法?

编辑

为不清楚而道歉。

我的模型如下:

代码语言:javascript
复制
Account > User (account_id) 
        > Meter (account_id) > Parameter (meter_id)

所以我可以检查user.account_id = meter.account_id,但是我不知道如何检查参数。

编辑2

除了马特的回答之外,这只是一个简单的例子:

代码语言:javascript
复制
  load_and_authorize_resource :meter
  load_and_authorize_resource through: :meter

在参数模型中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-02 15:30:25

代码语言:javascript
复制
if user
  can :crud, Parameter, meter: { account_id: user.account_id }
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30600199

复制
相关文章

相似问题

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