Подтвердить что ты не робот

Укажите, какие контроллеры должны исключать из before_filter

Я использую программу для проверки подлинности и имею некоторые before_filters в своем контроллере приложений. Проблема, которую я вижу, заключается в том, что когда я пытаюсь выйти из системы before_filter, она перехватывает это и удерживает меня в представлении, которое я настроил в файле before_filter. Есть ли способ указать, какие контроллеры должны быть исключены из контроллера приложения или какого-либо другого файла?

4b9b3361

Ответ 1

Вы можете выбрать фильтр с помощью :only или :except.

before_filter :filter_name, :except => [:action1, :action2]

Или, если фильтр (как я вижу сейчас в вашем случае) определен в ApplicationController, и вы хотите обойти его в контроллере подкласса, вы можете использовать skip_before_filter с теми же квалификациями в подклассе контроллер:

skip_before_filter :filter_name, :except => [:action1, :action2]

Ответ 2

В контроллере, где вы хотите пропустить фильтр до указанного в унаследованном контроллере, вы можете сказать, что рельсы пропускают фильтр

class ApplicationController
  before_filter :authenticate_user!
end

class SessionsController < ApplicationController
  skip_before_filter :authenticate_user!
end

Ответ 4

Ответы выше хорошо, за исключением: DEPRECATION WARNING: skip_before_filter is deprecated and will be removed in Rails 5.1. Use skip_before_action instead.

Итак, используйте before_action и skip_before_action вместо *-filter.