有没有类似于after_filter的东西,即使操作引发异常仍会运行?
我正在使用外部记录器(因为我在Heroku上); 响应标头在after_filter中被过滤和记录。 如果引发异常,则过滤器不会运行,我就没有响应标头数据的日志。
如果我尝试挂钩log_error或rescue_action_in_public,响应标头将不完整(因为实际渲染是在这些之后调用的)。
是否有另一个函数可以重写,它将在相当于after_filter的时间调用,但无论是否抛出异常都会始终运行?
谢谢!
有没有类似于after_filter的东西,即使操作引发异常仍会运行?
我正在使用外部记录器(因为我在Heroku上); 响应标头在after_filter中被过滤和记录。 如果引发异常,则过滤器不会运行,我就没有响应标头数据的日志。
如果我尝试挂钩log_error或rescue_action_in_public,响应标头将不完整(因为实际渲染是在这些之后调用的)。
是否有另一个函数可以重写,它将在相当于after_filter的时间调用,但无论是否抛出异常都会始终运行?
谢谢!
# in a controller
around_filter :catch_exceptions
def catch_exceptions
yield
rescue ActiveRecord::RecordNotFound
permission_denied_response # gives a stock error page
end
您可以将around_filter添加到application.rb控制器类中,也可以添加到单个控制器的类中。