如何在CanCanCan中覆盖继承的load_resource

时间:2019-03-07 20:40:39

标签: cancancan ruby-on-rails-5.2

我在CanCanCan 2.3.0中使用Rails 5.2.x

ApplicationController中,我有标准

load_resource
authorize_resource

对于大多数控制器来说,这是完全可以的。但是对于一个控制器,查找程序未使用默认的find(an_id),而应使用find_by(another_field: 'something other than the id')

有可能使它在控制器级别上与

一起使用
load_resource :find_by => :another_field

但是如果在load_resource中设置了ApplicationController,则无法使用。下级load_resource :find_by不会覆盖继承的load_resource。因此,我不得不在load_resource中关闭ApplicationController,这是我不想做的。

我的解决方法是使用load_resource在控制器中关闭skip_load_resource,并使用标准的before_action查找资源,但我想知道是否有办法在CanCanCan世界中。

0 个答案:

没有答案