Donnerstag, 21. Februar 2013

HAML Nutzung in Rails - neue Version kann Probleme bei falscher Nutzung hervorrufen

Wir haben heute einen Bug in einer unsere Applikationen behoben. Der Grund für den Fehler lag bei der Nutzung des aktualisierten Haml gems (Haml: http://haml.info/). Generell ist es nicht mehr möglich Rails-Template-Helper-Methoden, die ein HTML-Tag generieren, so aufzurufen:

- form_for @user

Es ist zwingend erforderlich dies so zu schreiben:

= form_for @user

Aufgefallen ist uns dies, seitdem wir das aktualisierte gem "haml (4.0.0)" nutzen (https://rubygems.org/gems/haml). Ausserdem ist es auch schlichtweg falsch hier ein - Zeichen zu nutzen.

Das Gleiche gilt im Übrigen auch für ERB-Style. In Rails 2.3.8 ging es noch so

http://apidock.com/rails/v2.3.8/ActionView/Helpers/FormTagHelper/form_tag

und seit Rails 3.0 muss es so sein:

http://apidock.com/rails/v3.0.0/ActionView/Helpers/FormTagHelper/form_tag

Generell ist der Unterschied zwischen = und - simpel. Wenn ein HTML-tag generiert werden soll, immer = nutzen. Wenn Ruby Code embedded wird, z.B. für einen Loop oder eine Condition, dann das - Zeichen nutzen.

Also, falls mal ein Formular (wie bei uns) mal nicht angezeigt wird, dann einfach mal prüfen.

Keine Kommentare:

Kommentar veröffentlichen