Я использую устройство для аутентификации и имею некоторые before_filters в своем контроллере приложений. Проблема, которую я вижу, заключается в том, что когда я пытаюсь выйти из системы before_filter, она перехватывает это и удерживает меня в представлении, которое я установил в файле before_filter. Есть ли способ указать, какие контроллеры должны быть исключены из контроллера приложения или какого-либо другого файла?Укажите, какие контроллеры должны исключать из before_filter
ответ
Вы можете выбрать фильтр с :only
или :except
.
before_filter :filter_name, :except => [:action1, :action2]
Или, если фильтр (как я теперь вижу, это происходит в вашей ситуации) определяется в ApplicationController
, и вы хотите, чтобы обойти его в контроллере подкласса, вы можете использовать skip_before_filter
с той же квалификации в подклассе контроллер:
skip_before_filter :filter_name, :except => [:action1, :action2]
в контроллере, где вы хотите, чтобы пропустить перед фильтром, указанным в унаследованном контроллере, вы можете сказать, рельсы, чтобы пропустить фильтр
class ApplicationController
before_filter :authenticate_user!
end
class SessionsController < ApplicationController
skip_before_filter :authenticate_user!
end
В конфигурации/application.rb
config.to_prepare do
Devise::SessionsController.skip_before_filter :authenticate_user!
end
Референт:
How to skip a before_filter for Devise's SessionsController?
Ответы выше хороши, кроме: 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
.
- 1. ASP.NET Укажите, какие файлы должны быть кэшированы
- 2. Укажите допустимые контроллеры для маршрута
- 3. Какие контроллеры для реализации
- 4. Когда мы должны исключать исключения или исключать исключения в методе?
- 5. Контроллеры должны реализовать InjectApplicationEventInterface
- 6. Почему вы должны исключать исключение в java
- 7. Почему мы должны исключать библиотеку из obfuscation ProGuard?
- 8. Должны ли элементы надписи исключать форматирование для экранных считывателей
- 9. Какие файлы следует исключать при настройке проекта VS2013 и perforce
- 10. C#: В каких случаях вы должны исключать ссылки?
- 11. Какие символы следует исключать при поиске в базе данных оракула?
- 12. Где контроллеры должны размещаться в приложении Meteor?
- 13. before_filter: require_owner
- 14. Должны ли просматривать контроллеры, загруженные из раскадровки, сильными или слабыми?
- 15. возврат из метода используется before_filter
- 16. before_filter в нескольких контроллерах
- 17. Должны ли серверные методы исключать исключения, если доступ запрещен?
- 18. Расчетные рабочие дни между двумя днями должны исключать праздники
- 19. Должны ли веб-сервисы исключать исключения или объекты результата
- 20. «Открытые проблемы» в «Сонаре Кубе» должны исключать «INFO» Нарушения
- 21. Зачем исключать wwwroot из tsconfig?
- 22. Укажите, какие поля на странице требуются?
- 23. Skip before_filter in Rails
- 24. Можно указать, какие контроллеры перехватчики использовать
- 25. Какие классы моделей должны представлять?
- 26. FindConnectionPoint, какие параметры должны пройти
- 27. Какие разрешения должны иметь «texlive»?
- 28. Какие сообщения ServiceControl.Contracts должны IHandle?
- 29. Укажите, какие DLL ссылки на приложение?
- 30. Укажите, какие объекты загружать в кластеры doSNOW
спасибо за это .. – Orlando
Это ответ на исходный вопрос в более ясном mannor, однако 'skip_before_filter: filter-name,: except => [: action1,: action2]' из принятого ответа - отличный наконечник! – colsen
@Jesse Wolgamott, а что, если контроллер, где я хочу пропустить фильтр перед фильмом, живет в камне? Есть ли способ указать на before_filter нечто большее, чем просто действия? – hunteros