2011-05-30 7 views

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

Gracias! Creo que también podría verificar response.headers ['Location']. –

+1

Hay un montón de cosas en 'self', que vale la pena mirar incluso por su interés. –

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