Bei einem Ruby-on-Rails-Pro­jekt funk­tio­nier­te lokal alles — aber in der Umge­bung pro­duc­tion (unter nginx) ver­schwan­den die Flash-Mel­dun­gen (zum Bei­spiel nach dem Log­in über Devi­se) nicht mehr — bezie­hungs­wei­se erst, als eine Sei­te gerän­dert wur­de, die von einem ande­ren Con­trol­ler ver­wal­tet wird.

Da das Pro­jekt Devi­se teil­wei­se per Ajax nutzt und die eini­ge Flash-Mel­dun­gen selbst aus­gibt, dach­ten wir erst an alles ande­re; bis wir, als uns nach etli­chen Stun­den Debug­ging lang­sam die Optio­nen aus­gin­gen, wir ein­fach mal den Inhalt der deve­lo­p­ment- und pro­duc­tion-Datei­en in config/environments aus­tausch­ten. Und sie­he da, das Pro­blem war weg.

Der Grund des Pro­blems war fol­gen­de Einstellung:

config.action_controller.perform_caching = true

Nach­dem wir sie in pro­duc­tion auf fal­se gesetzt haben, funk­tio­nier­ten die Flash-Mel­dun­gen wie­der.  Rück­bli­ckend ist das eigent­lich klar, aber dar­auf zu kom­men, hat gedauert.

Mer­ke daher: Gibt es Pro­ble­me mit dem Anzei­gen von Flash-Mel­dun­gen, immer auch an die­se Caching-Ein­stel­lung denken.