2010-11-08 13 views
18

Was die Verwendung von ERb in Rails empfohlen, wenn es um <% %> kommt (Ruby-Code bewerten), <% -%> (bewerten Ruby-Code, unterdrücken die Newline) und <%- -%> (bewerten Rubin Code, unterdrücken Sie den abschließenden Zeilenumbruch und den Zeilenabstand)? Es scheint wie <%- -%> würde die Ausgabe HTML am schönsten aussehen, aber <% %> scheint vor allem was ich sehe.Rails ERb Best Practices (<% %> vs <% -%> vs <%- -%>)

+0

IMHO, es ist nicht wirklich wichtig, wie "nett" das HTML aussieht, solange es einige eingerückte Struktur zum generierten HTML gibt, störe ich mich nicht mit dem Unterdrücken von Zeilenumbrüchen etc. – Zabba

+1

Ich denke <% %> und <% -%> sind auch in rails 3 (kein nachlaufender newline) – raidfive

+9

ich glaube du bist [rasier yaks] (http://projects.csail.mit.edu/gsb/old-archive/gsb-archive/gsb2000-02-11.html). Es gibt viele Dinge, über die Sie sich beim Codieren Gedanken machen müssen, aber ob Ihr ausgegebenes HTML gut aussieht, steht nicht wirklich hoch auf der Liste der Dinge, die einen großen Unterschied machen. Aber, fühlen Sie sich nicht schlecht, denn Sie sind in guter Gesellschaft. Wir machen es alle. –

Antwort

10

Es ist eine persönliche Vorliebe. Ich benutze <%%>, wenn ich eine Schleife oder einen Block schreibe, weil ich dort neue Zeilen möchte. Ich verwende <% -%> in seltenen Fällen der Variablenzuweisung. Und ich verwende nie <% - -%> weil das eine Option zu viele ist.

+0

'<% - wenn foo? -> 'ist genau das, was du willst in einem Schienengenerator-Template –

5

Ich habe gerade gelesen in http://ruby-doc.org/ruby-1.9/classes/ERB.html, dass Sie auch nur ein einziges Prozentzeichen für oneliners verwenden können (wenn es nichts anderes auf dieser Linie ist)

Beispiel aus der Dokumentation:

<%# ignore numerous minor requests -- focus on priorities %> 
% priorities.each do |priority| 
    * <%= priority %> 
% end 

aaaalmost wie HAML, nicht wahr? :)

+0

" aaaalmost like [HAML] (http://haml-lang.com/), nicht wahr? " Wir können hoffen. :-) –

+0

wusste das nicht, danke! –