我在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世界中。