Kann jemand bitte die Verwendung der folgenden Zeichen beschreiben, die in der ERB-Datei verwendet werden:
<% %>
<%= %>
<% -%>
<%# %>
Was nützt jeder?
ruby-on-rails
ruby
templates
erb
simo
quelle
quelle
-%>
und stackoverflow.com/questions/3952403/... für<%=
, stackoverflow.com/questions/3901619/... für<%#
.<%= %>
und<%= -%>
sind anders: nur letzteres entfernt nachgestellte Leerzeichen.Antworten:
Führt den Ruby-Code in den Klammern aus.
Druckt etwas in eine erb-Datei.
Vermeidet Zeilenumbrüche nach dem Ausdruck.
Kommentiert den Code in Klammern aus. nicht an den Client gesendet (im Gegensatz zu HTML-Kommentaren).
Besuchen Sie Ruby Doc für weitere Informationen zu ERB.
quelle
<%#
ist nur normal<%
mit einem Ruby-Kommentar#
direkt danach ... Ja, es macht Spaß zu denken, dass es etwas Besonderes ist, aber ist es nicht eher eine ERB-Sprache als ein spezielles syntaktisches Konstrukt?<%...%>
,<%#...%>
kommentieren Sie alles aus, was es nicht tun würde, wenn es nur ein normaler Kommentar wäre (dh es würde nur die Zeile auskommentieren ist Zustand).<% %>
und<%- and -%>
sind für jeden Ruby-Code, geben jedoch keine Ergebnisse aus (z. B. if-Anweisungen). die beiden sind gleich.<%= %>
dient zur Ausgabe der Ergebnisse von Ruby-Code<%# %>
ist ein ERB-KommentarHier ist eine gute Anleitung: http://api.rubyonrails.org/classes/ActionView/Base.html
quelle
<%-
etwas für führende Leerzeichen bewirkt, und ich sehe es nirgendwo dokumentiert. Bist du dir da sicher? Vielleicht ist es ein anderer Geschmack von ERB. In den stdlib-Dokumenten wird keine Option dafür angezeigt.Rails ist nicht die Verwendung Erbsche stdlib standardmäßig verwendet es erubis . Quellen: Der Kommentar dieses Entwicklers , ActionViews Gemspec , akzeptierte die Zusammenführungsanforderung, die ich beim Schreiben dieses Artikels gestellt habe .
Es gibt Verhaltensunterschiede zwischen ihnen, insbesondere hinsichtlich der Funktionsweise der Bindestrichoperatoren
%-
und der Funktionsweise-%
.Dokumentation ist knapp. Wo ist Rubys ERB-Format "offiziell" definiert? Was folgt, sind empirische Schlussfolgerungen.
Alle Tests setzen voraus:
Wann können Sie verwenden
-
-
dietrim_mode
Option übergebenERB.new
, es zu verwenden.Beispiele:
Was
-%
macht:ERB: Entfernen Sie das nächste Zeichen, wenn es sich um eine neue Zeile handelt.
erubis:
in
<% %>
(ohne=
)-
ist nutzlos, weil<% %>
und<% -%>
sind gleich.<% %>
Entfernt die aktuelle Zeile, wenn sie nur Leerzeichen enthält, und führt nichts anderes aus.in
<%= -%>
(mit=
):Beispiele:
Was
%-
macht:ERB: Leerzeichen vor dem Tag und nach vorherigen Zeilenumbrüchen entfernen, jedoch nur, wenn zuvor nur Leerzeichen vorhanden sind.
erubis: nutzlos, weil
<%- %>
es dasselbe ist wie<% %>
(ohne=
), und dies kann nicht verwendet werden,=
was der einzige Fall-%
ist, in dem es nützlich sein kann. Also benutze das niemals.Beispiele:
Was
%-
und-%
zusammen machenDie genaue Kombination beider Effekte getrennt.
quelle
<% %>
: Führt den Ruby-Code aus<%= %>
: Druckt in Erb-Datei. Oder Browser<% -%>
: Vermeidet Zeilenumbrüche nach dem Ausdruck.<%# %>
: ERB-Kommentarquelle
Ich habe das
<%%
Literal-Tag-Trennzeichen als Antwort darauf hinzugefügt , da es dunkel ist. Dies<%
weist erb an, den Teil des Tags, der für js-Apps wie das Anzeigen von Tooltips für chart.js usw. erforderlich ist, nicht zu interpretieren .Update (defekter Link behoben)
Alles über ERB finden Sie jetzt hier: https://puppet.com/docs/puppet/5.3/lang_template_erb.html#tags
quelle
Diese werden in Rubin auf Schienen verwendet : -
<%%>: -
Die <%%> -Tags werden verwendet, um Ruby-Code auszuführen, der nichts zurückgibt, z. B. Bedingungen, Schleifen oder Blöcke. Z.B :-
<% =%>: -
Verwenden Sie diese Option, um den Inhalt anzuzeigen.
<% -%>: -
Rails erweitert ERB, sodass Sie die neue Zeile unterdrücken können, indem Sie Tags in Rails-Vorlagen einfach einen nachgestellten Bindestrich hinzufügen
<% #%>: -
Kommentieren Sie den Code aus
quelle
<% %>
führt den Code dort aus, druckt aber das Ergebnis nicht aus, zum Beispiel:Wir können ihn verwenden, wenn sonst in einer erb-Datei.
Wird gedruckt
temp is 1
<%= %>
führt den Code aus und druckt auch die Ausgabe, zum Beispiel:Wir können den Wert einer Rails-Variablen drucken.
Wird gedruckt
1
<% -%>
Es macht keinen Unterschied, da es nichts druckt,-%>
nur Sinn macht<%= -%>
, dies vermeidet eine neue Zeile.<%# %>
wird den darin geschriebenen Code auskommentieren.quelle