2010-09-02 11 views
12

Gibt es etwas Ähnliches wie ein after_filter, das immer noch ausgeführt wird, wenn die Aktion eine Ausnahme auslöst?after_filter für Ausnahmen

Ich benutze einen externen Logger (seit ich auf Heroku bin); Die Antwortheader werden im after_filter gefiltert und protokolliert. Wenn eine Ausnahme ausgelöst wird, wird der Filter nicht ausgeführt, und ich habe kein Protokoll der Antwortheaderdaten.

Wenn ich versuche, log_error oder rescue_action_in_public einzuloggen, wird der Antwortheader nicht vollständig sein (da das tatsächliche Rendern danach aufgerufen wird).

Gibt es eine andere Funktion, die ich überschreiben kann, die zur äquivalenten Zeit zu einem after_filter aufgerufen wird, aber immer unabhängig davon ausgeführt wird, ob eine Ausnahme ausgelöst wird?

Danke!

Antwort

10

Sie können einen around_filter verwenden und die Ausnahmen abfangen. Bsp

Sie können den around_filter in der Controller-Klasse application.rb oder in der Klasse eines einzelnen Controllers hinzufügen.

+0

Das fängt Ausnahmen, aber nicht die vollständigen Antwort-Header, glaube ich. Was auch immer Sie in der Rettung machen, ist nicht enthalten. . . Nein? –

+0

Wenn es eine Ausnahme gibt, gab es keine ursprüngliche Antwort oder Header ... Ich bin mir nicht sicher, was dein q ist. Vielleicht möchten Sie http://github.com/rails/exception_notification, die Sie mit einem Stack-Trace, Argumenten und mehr, wenn es eine Ausnahme gibt. –

Verwandte Themen