Estoy escribiendo un after_filter en Rails 3, y me gustaría detectar si el controlador (o cualquier otro filtro) ha emitido un redireccionamiento. ¿Hay alguna manera de hacer esto?Detectar en Rails after_filter ya sea que estemos renderizando o redirigiendo
8
A
Respuesta
15
Puede consultar el código status
. 200 es un render, 302 es un redireccionamiento.
after_filter :what_happened
protected
def what_happened
was_redirect = self.status == 302
was_render = self.status == 200
end
0
Para cualquier persona que todavía está atascado en los carriles 3, y quiere utilizar un filtro basado en la clase para compartir la lógica entre los controladores con la composición, revisa el siguiente ejemplo:
class MyController < ApplicationController
after_filter ControllerMetrics
end
class ControllerMetrics
def self.filter(controller)
status_xxx = "#{controller.response.status/100}XX"
Statsd.increment("response.#{status_xxx}")
end
end
Cuestiones relacionadas
- 1. En rieles, ya sea para utilizar formularios auxiliares o no?
- 2. after_filter para las excepciones
- 3. ¿Cómo/cuándo funciona el 'after_filter'?
- 4. Rails no está renderizando el diseño de mi aplicación
- 5. ¿Te presentamos Rails en una tienda PHP? ¿O construir lo que ya usamos?
- 6. hacer que mi archivo legible ya sea como Perl o HTML
- 7. redirigiendo la salida Trace.axd
- 8. Una variable que no sea pública o
- 9. Ruby: ¿Cómo establecer una variable ya sea a 0 o, si ya está establecido, se incrementan en 1
- 10. ¿Estoy renderizando árboles BSP incorrectamente?
- 11. Redirigiendo al referer
- 12. django admin login no redirigiendo
- 13. Renderizando un formulario desde otro controlador en Ruby on Rails 3
- 14. Cómo detectar que la misma página ya está abierta en otra ventana en IE
- 15. Detecta cuando el enlace está activado, ya sea por clic o pestaña e ingresa
- 16. Cómo animo una secuencia PNG utilizando jQuery (ya sea mediante desplazamiento o animación activada)
- 17. Obtener un std :: ostream ya sea desde std :: cout o std :: ofstream (archivo)
- 18. Problema con GWT detrás de un proxy inverso, ya sea nginx o apache
- 19. rails 3.1.0 belongs_to ActiveResource ya no funciona
- 20. cómo detectar si el modo de acción ya está presente
- 21. Extensión de Chrome: ¿cómo detectar que el script de contenido ya está cargado en una pestaña?
- 22. Detectar un proceso que ya se está ejecutando en Windows con C# .NET
- 23. Renderizando archivos .html como vistas en ASP.NET MVC
- 24. ¿Qué hace que la bandera UnhandledExceptionEventArgs.IsTerminating sea verdadera o falsa?
- 25. Cómo detectar si ya existe un procedimiento almacenado
- 26. ¿Cómo hacer que la migración de Rails sea condicional en RAILS_ENV actual?
- 27. ¿Existen posibles desventajas en el uso de un framework Ruby que no sea Rails?
- 28. Rails 3 update_all usando los datos que ya figuran en la tabla por registro
- 29. Detectar si el botón del mouse ya está presionado antes de que el formulario muestre
- 30. ¿Cómo hacer un formulario que no sea modelo en ruby on rails?
Gracias! Creo que también podría verificar response.headers ['Location']. –
Hay un montón de cosas en 'self', que vale la pena mirar incluso por su interés. –