Я только что обновил свое приложение до Rails 5.1, и меня укусило новое поведение обратных вызовов skip_before_action. то есть, если обратный вызов не определен в то время, когда я пытаюсь его пропустить, возникает ошибка.
Я знаю, что могу пройти рейз: ложь вроде
skip_before_action :authorise, raise: false
Но интересно, есть ли лучший способ сделать это.
Моя основная проблема заключается в том, что если для параметра «Нетерпеливая загрузка» установлено значение «истина», новое поведение нарушает модульную настройку моих контроллеров.
В основном у меня есть каталог app/controllers/api
с module_controller.rb
:
module Api
class ModuleController < ActionController::Base
before_action :authorise
end
end
Затем у меня есть app_chats_controller.rb
, который пропускает обратный вызов авторизации:
module Api
class AppChatsController < ModuleController
skip_before_action :authorise
end
end
При нетерпеливой загрузке app_chats_controller.rb
загружается первым, что означает, что обратный вызов еще не определен и без raise: true
возникает ошибка.
Если мне придется стиснуть зубы и добавить ко всему raise: false
, пусть будет так, но наверняка есть способ получше...
Rails.application.config.enable_dependency_loading
установлено наtrue
? 08.05.2017