我的帐户模型中有很多"用户和#34;有很多"米。 Meter对象有一个account_id列,因此可以很容易地在Cancancan中定义此功能:
if user
can :crud, Meter, :account_id => user.account_id
end
但是,仪表也有很多"参数。我想做一个类似的能力定义,如果参数属于与用户属于同一帐户的仪表,则只允许CRUD访问。
由于参数模型只有一个meter_id列(而不是一个account_id列),我不确定实现这种额外嵌套级别的最佳方法吗?
修改
道歉不清楚。
我的模型如下:
Account > User (account_id)
> Meter (account_id) > Parameter (meter_id)
所以我能够检查user.account_id是否为meter.account_id,但我不确定如何检查参数。
修改2
除了马特的回答,它只是一个包含以下内容的案例:
load_and_authorize_resource :meter
load_and_authorize_resource through: :meter
参数模型中的。
答案 0 :(得分:1)
{{1}}