Я использую Rails 5.2.x с CanCanCan 2.3.0
В ApplicationController
У меня есть стандарт
load_resource
authorize_resource
И для большинства контроллеров это прекрасно. Но для одного контроллера искатель не использует значение по умолчанию find(an_id)
, но должен использовать find_by(another_field: 'something other than the id')
.
Возможно заставить это работать на уровне контроллера с
load_resource :find_by => :another_field
Но не работает, если в ApplicationController
установлено load_resource
. Нижний уровень load_resource :find_by
не переопределяет унаследованный load_resource
. Поэтому мне придется отключить load_resource
в ApplicationController
, чего я не хочу делать.
Мой обходной путь - отключить load_resource
в контроллере с помощью skip_load_resource
и использовать стандартный before_action
для поиска ресурса, но я хотел бы знать, есть ли способ сделать это в мире CanCanCan.