Estoy utilizando el dispositivo para la autenticación y tengo algunos filtros_antes en el controlador de mi aplicación. El problema que estoy viendo es que cuando intento cerrar la sesión, el before_filter intercepta eso y me mantiene en la vista que he configurado en el before_filter. ¿Hay alguna manera de especificar qué controladores deberían excluirse del controlador de la aplicación o algún otro archivo?Especifique qué controladores excluir de before_filter
Respuesta
Puede calificar un filtro con :only
o :except
.
before_filter :filter_name, :except => [:action1, :action2]
O si el filtro (ya que ahora veo es el caso en su situación) se define en ApplicationController
y desea prescindir de ella en un controlador de subclase, se puede utilizar un skip_before_filter
con las mismas calificaciones en la subclase controlador:
skip_before_filter :filter_name, :except => [:action1, :action2]
en el controlador donde desea omitir un antes filtro especificado en un controlador heredado, se puede decir rieles para saltarse el filtro
class ApplicationController
before_filter :authenticate_user!
end
class SessionsController < ApplicationController
skip_before_filter :authenticate_user!
end
En config/application.rb
config.to_prepare do
Devise::SessionsController.skip_before_filter :authenticate_user!
end
Referenciado por:
How to skip a before_filter for Devise's SessionsController?
respuestas anteriores son buenas, excepto: DEPRECATION WARNING: skip_before_filter is deprecated and will be removed in Rails 5.1. Use skip_before_action instead.
Así que por favor utilice before_action
y skip_before_action
en lugar de *-filter
.
- 1. Llamar before_filter solo para controladores específicos
- 2. Modelo de rieles "before_filter"?
- 3. before_filter con parámetros
- 4. Omitir before_filter en Rails
- 5. before_filter: require_owner
- 6. before_filter con otro controlador
- 7. before_filter no canceling action
- 8. Diseñar before_filter authenticate_admin?
- 9. before_filter y respond_to formatos
- 10. before_filter con el dispositivo
- 11. Especifique qué versión instalar con macports
- 12. Anulando un before_filter con RSpec
- 13. ¿Cómo implementa los rieles before_filter?
- 14. Una forma de agregar before_filter del motor a la aplicación
- 15. Rieles before_filter e identificación de acción
- 16. Controladores de prueba en gema con RSpec
- 17. RSpec in Rails: cómo omitir un before_filter?
- 18. ¿Qué controladores MySQL están disponibles para node.js?
- 19. Especifique ControlTemplate para ItemsControl.ItemContainerStyle
- 20. especifique programáticamente el operador
- 21. Ruby on Rails: before_filter =>: only_when_user_is_logged_in
- 22. Múltiples declaraciones before_filter para correct_user y admin
- 23. Especifique un controlador predeterminado para ODBC
- 24. ¿Cómo sabe el kernel de Linux qué controladores cargar en el arranque?
- 25. Excluir carpeta de htpasswd
- 26. Especifique el arco en GHC?
- 27. controladores, clases de entidad o dao: ¿qué va a dónde?
- 28. ¿Por qué Apple recomienda crear controladores de navegación moda programáticamente?
- 29. ¿En qué se diferencia Mesa de los controladores OpenGL?
- 30. Excluir archivos de git-diff
gracias por esto .. – Orlando
Esto presenta una respuesta a la pregunta original de una manera más clara, sin embargo 'skip_before_filter: filter-name,: except => [: action1,: action2]' de la respuesta aceptada es un gran ¡propina! – colsen
@Jesse Wolgamott ¿Qué pasa si el controlador donde quiero omitir el filtro anterior vive en una joya? ¿Hay alguna manera de especificar en el before_filter algo más que solo acciones? – hunteros