Как переопределить унаследованный load_resource в CanCanCan - PullRequest
0 голосов
/ 07 марта 2019

Я использую 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.

...