Alternativen zu ERB

8

Ich werde stärker in die RoR-Entwicklung einsteigen. ERB fühlt sich nicht richtig zu mir. Ich habe das schon einmal mit JSP gemacht. Das Einbetten von Ruby-Code in mein Markup fühlt sich selbst dann nicht als guter Plan an, wenn die Logik sichtspezifisch ist. Vielleicht sind meine Ängste unbegründet, aber es fühlt sich gefährlich an. Außerdem wird viel geschrieben.

Ich habe HAML gefunden, und ich gebe ihm noch mehr Bewertung. Wenn es eine gute Alternative ist, können Sie vielleicht einige gute Ressourcen dafür geben.

Welche anderen Alternativen zu ERB gibt es neben HAML für den Rails View-Layer?

Sind meine Ängste mit ERB ungerechtfertigt?

    
Drew 27.12.2010, 22:07
quelle

4 Antworten

7

Wenn dir Ruby in deinen Ansichten nicht gefällt, wird HAML dir nicht helfen. Obwohl syntaktisch mehr Succint, verwendet es eingebettete Ruby wie ERB tut.

Wenn Sie Logik in Ihren Ansichten vermeiden möchten, schauen Sie sich etwas wie Moustache an. Es verwendet einen Templating-Stil, der eine striktere Trennung von Logik und Präsentation betont (logikfreie Ansichten).

    
Milan Novota 27.12.2010, 22:45
quelle
12

Eingebetteter Ruby-Code in einer Vorlage ist kein Problem. Es bietet Erb und Haml eine enorme Macht als Vorlagensprachen. Tatsächlich leiden viele Vorlagensprachen darunter, dass die Vorlagen keinen Code haben (z. B. Djangos Vorlagensprache).

Das wirkliche Problem, das manchmal auftritt, ist, wenn der Entwickler komplexen Code festhält oder Daten zieht oder Daten aktualisiert oder Code-Entscheidungen in die Vorlage schreibt.

Ruby und Rails bieten dem Entwickler enorme Power und Flexibilität. Es liegt in der Verantwortung des Entwicklers, verantwortlich zu sein. Rufen Sie Ihre Daten im Controller ab. Verschieben Sie komplexen Code in einen Helfer. Etc.

%Vor%

Das obige ist einfach Ruby-Einbettung und sitzt gut in einer Ansicht. Die Haml-Version ist:

%Vor%

Solange Sie den Code einfach halten und komplexer Code in den Controller oder einen Helfer verschoben wird, ist alles in Ordnung.

Beachten Sie, dass Haml- und Erb-Vorlagen die gleichen Mengen an eingebettetem Ruby-Code enthalten, mit der Ausnahme, dass Haml alle end s verworfen hat.

    
yfeldblum 27.12.2010 22:34
quelle
4

Sie könnten in Erector nach einer abstrahierteren Methode zum Ausführen von Sichten suchen:

Ссылка

    
Karl 28.12.2010 00:15
quelle
0

Ich komme wie du nach Rails (und Ruby), nachdem ich einige Zeit in Java gedient habe. Ich hatte eine viszerale Reaktion, als ich ERB sah und mich an die schlechten alten Zeiten von JSP erinnerte, bevor ich Velocity und Freemarker entdeckte.

Wie auch immer, ich betrachte zwei Vorlagensprachen, die Sie interessieren könnten:

Wenn Handlerbars Sie interessieren, schauen Sie sich auch Handlerbars.rb an. Es gibt mindestens ein anderes Projekt mit diesem Namen, aber dieser ist kein Ruby-Port von Handlerbars, sondern ein Ruby-Wrapper um Handlerbars.js. Es ist also "die echten Handlerbars".

    
Jimothy 05.06.2013 21:44
quelle