Andreas Marc Klingler

Ruby on Rails: perform_caching und Flash-Meldungen

Bei einem Ruby-on-Rails-Projekt funktionierte lokal alles — aber in der Umgebung production (unter nginx) verschwanden die Flash-Meldungen (zum Beispiel nach dem Login über Devise) nicht mehr — beziehungsweise erst, als eine Seite gerändert wurde, die von einem anderen Controller verwaltet wird.

Da das Projekt Devise teilweise per Ajax nutzt und die einige Flash-Meldungen selbst ausgibt, dachten wir erst an alles andere; bis wir, als uns nach etlichen Stunden Debugging langsam die Optionen ausgingen, wir einfach mal den Inhalt der development- und production-Dateien in config/environments austauschten. Und siehe da, das Problem war weg.

Der Grund des Problems war folgende Einstellung:

config.action_controller.perform_caching = true

Nachdem wir sie in production auf false gesetzt haben, funktionierten die Flash-Meldungen wieder. Rückblickend ist das eigentlich klar, aber darauf zu kommen, hat gedauert.

Merke daher: Gibt es Probleme mit dem Anzeigen von Flash-Meldungen, immer auch an diese Caching-Einstellung denken.

Impressum & Datenschutz