rails before_action отсутствует в расширенных классах

#ruby-on-rails #controller #before-filter

#ruby-on-rails #контроллер #before-filter

Вопрос:

В app/controllers/application_controller

 class ApplicationController < ActionController::Base
    before_filter :set_locale_or_redirect
    before_action :set_locale
  

Этот код выполняется во всех контроллерах. Тем не менее, я не хочу set_locale_or_redirect и set_locale выполнять, app/controllers/biblio_controller.rb я попробовал это:

 class Dts::BibliosController < ApplicationController
    skip_before_filter :set_locale_or_redirect, raise: false
    skip_before_action :set_locale, raise: false
  

безуспешно.

Комментарии:

1. Не используйте before_filter , это устарело, всегда используйте before_action .

Ответ №1:

Это определенно возможно. Чтобы «пропустить» before_action в контроллере, вы можете использовать:

 skip_before_action :action_name
  

В вашем случае это было бы:

 skip_before_action :set_locale_or_redirect
skip_before_action :set_locale
  

Вы можете прочитать больше здесь