ruby-on-rails - query - rails session
before_filter no cancela acción (1)
Nada presta atención al valor de retorno de un filtro anterior. Si desea detener el procesamiento, debe renderizar algo de su filtro o redirigirlo a otro lugar, a partir de la guía fina :
Si un filtro anterior representa o redirige, la acción no se ejecutará. Si hay filtros adicionales programados para ejecutarse después de ese filtro, también se cancelan.
El mismo texto aparece en la guía 5.2.0 .
Este comportamiento tiene sentido, si la cadena de filtro no se completa (es decir, deja de filtrarse en el medio), terminaría llamando a los métodos del controlador con cosas que no estaban configuradas de la forma en que esperaban y eso solo causaría dolor , sufrimiento y confusión y eso no sería para nada amistoso o divertido.
Tengo problemas para que los filtros funcionen en una aplicación Rails que actualicé recientemente de 1.9 (?) A 2.3.11. Para intentar depurarlo, he puesto un before_filter en un controlador:
before_filter :false_filter
y lo siguiente en application_controller.rb:
def false_filter
puts "false filter running"
false
end
Luego llamo al método desde pepino / webrat o desde un navegador, y mientras se llama al filtro (puedo ver las publicaciones que envían el mensaje), la cadena de filtros no se termina.
Me pregunto si hay algún código repetitivo que no se haya generado. ¿Alguien puede sugerir dónde mirar?