Notizen und Gedanken von Andreas Marc Klingler

Schlagwort: Ruby on Rails

Ruby on Rails, i18n: Feh­len­de Übersetzungen

Pro­blem: In einem Ruby on Rails-Pro­jekt wur­den eini­ge Über­set­zun­gen nicht gefun­den. Obwohl alles kor­rekt in den i18n-loca­le-Datei­en ein­ge­tra­gen war, die auch alle gela­den wurden.

Lösung: i18n-Loca­le-Datei­en wer­den in Rails sequen­ti­ell ein­ge­le­sen. Datei für Datei. Wird ein neu­er Schlüs­sel gefun­den, wird die­ser defi­niert. Ist der Schlüs­sel aber schon vor­han­den, wird er über­schrie­ben. Gibt es also meh­re­re Schlüs­sel in meh­re­ren Datei­en (oder in einer Datei, das lie­fe auf das glei­che hin­aus), sind in der Anwen­dung nur die­je­ni­gen Über­set­zun­gen des­je­ni­gen Schlüs­sels vor­han­den, der zuletzt ein­ge­le­sen wur­de. Fies.

 

Ruby on Rails: perform_caching und Flash-Meldungen

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.