8.7 Alternative Template-Systeme
ERB-Templates sind Bestandteil der Rails-Applikation und können jeden Ruby-Code ausführen. Also im schlimmsten Fall auch solchen, der Ihre Datenbank zerstört. Das heißt, wenn Sie sichergehen wollen, dass die Anwendungsdesigner nicht versehentlich Code einfügen, der fatale Folgen haben könnte, brauchen Sie eine Alternative zu ERB-Templates.
Liquid Templates
Unter Rails sind Liquid Templates eine gern eingesetzte Alternative. Sie können nicht jeden beliebigen Code ausführen, das heißt, es kann nicht beliebig auf die Applikation über Ruby zugegriffen werden.
Liquid Templates ist ein Plug-in, das Sie erst installieren müssen, bevor Sie es einsetzen können (siehe http://www.liquidmarkup.org ).
Builder
Als weiteres alternatives Template-System steht Builder zur Verfügung. Builder ist eine Bibliothek, mit deren Hilfe Sie strukturierten Text, wie z. B. XML, ausgeben können. Das heißt, ein Builder-Template enthält Ruby-Code, der die Builder-Bibliothek nutzt, um XML zu generieren.
Builder steht als Ruby-Gem-Paket zur Verfügung. Die Dokumentation finden Sie auf der Website von RubyForge ( http://builder.rubyforge.org ). In Rails ist Builder enthalten, so dass Sie nichts herunterladen oder installieren müssen, um es nutzen zu können.
Vorteile von Builder-Templates sind:
- nur Ruby- bzw. Rails-Code
- sehr gut geeignet zur Generierung von XML-Dateien
Als Nachteil ist zu nennen, dass der Einsatz der Builder-Bibliothek komplex und damit etwas schwieriger zu erlernen ist.
HAML
Ein weiteres alternatives Template-System ist HAML , das die Vorteile von ERB-Templates und Builder-Templates verbindet. Die HAML-Syntax ist an CSS angelehnt und soll vor allem Webdesignern, die nicht viel mit der Programmierung zu tun haben, die Arbeit erleichtern. Wir wollen Ihnen das an einem kurzen Beispiel zeigen:
Listing HAML
#profile .left.column #date= print_date #address= current_user.address .right.column #email= current_user.email #bio= h(current_user.bio)
Listing ERB
<div id="profile\"> <div class="left column\"> <div id="date\»<%= print_date %></div> <div id="address\»<%= current_user.address %></div> </div> <div class="right column\"> <div id="email\»<%= current_user.email %></div> <div id="bio\»<%= h current_user.bio %></div> </div> </div>
Weitere Informationen zu Haml und wie Sie HAML installieren können, finden Sie auf der Website http://haml.hamptoncatlin.com .
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.