Kann jemand bitte die Verwendung der folgenden Zeichen beschreiben, die in der ERB-Datei verwendet werden?
<% %>
<%= %>
<% -%>
<%# %>
Was ist die Verwendung der einzelnen Elemente?
Kann jemand bitte die Verwendung der folgenden Zeichen beschreiben, die in der ERB-Datei verwendet werden?
<% %>
<%= %>
<% -%>
<%# %>
Was ist die Verwendung der einzelnen Elemente?
<% %>
Führt den Ruby-Code innerhalb der Klammern aus.
<%= %>
Druckt etwas in eine erb-Datei.
<%== %>
Äquivalent zu <%= raw %>
. Druckt etwas wortwörtlich (d.h. ohne Escaping) in eine erb-Datei. (Entnommen aus Ruby on Rails-Anleitungen .)
<% -%>
Vermeidet den Zeilenumbruch nach dem Ausdruck.
<%# %>
Kommentiert den Code in Klammern; wird nicht an den Client gesendet (im Gegensatz zu HTML-Kommentaren).
Besuchen Sie Ruby Doc für weitere Informationen über ERB.
<% %>
y <%- and -%>
sind für jeden Ruby-Code, geben aber die Ergebnisse nicht aus (z. B. if-Anweisungen). die beiden sind gleich.
<%= %>
dient zur Ausgabe der Ergebnisse von Ruby-Code
<%# %>
ist ein ERB-Kommentar
Hier ist ein guter Leitfaden: http://api.rubyonrails.org/classes/ActionView/Base.html
Rails tut pas verwenden Sie die stdlibs ERB verwendet er standardmäßig erubis . Quellen: der Kommentar dieses Entwicklers , ActionViews gemspec , akzeptierte Zusammenführungsanforderung, die ich beim Schreiben dieses Artikels .
Dort sind Verhaltensunterschiede zwischen ihnen, insbesondere hinsichtlich der Art und Weise, wie die Bindestrichoperatoren %-
y -%
Arbeit.
Die Dokumentation ist spärlich, Wo ist das ERB-Format von Ruby "offiziell" definiert? Was folgt, sind also empirische Schlussfolgerungen.
Alle Tests gehen davon aus:
require 'erb'
require 'erubis'
Wann Sie Folgendes verwenden können -
-
a trim_mode
Option von ERB.new
es zu benutzen.Beispiele:
begin ERB.new("<%= 'a' -%>\nb").result; rescue SyntaxError ; else raise; end
ERB.new("<%= 'a' -%>\nb" , nil, '-') .result == 'ab' or raise
Erubis::Eruby.new("<%= 'a' -%> \n b").result == 'a b' or raise
Was -%
tut:
ERB: Das nächste Zeichen wird entfernt, wenn es ein Zeilenumbruch ist.
erubis:
in <% %>
(ohne =
), -
ist nutzlos, weil <% %>
y <% -%>
sind identisch. <% %>
entfernt die aktuelle Zeile, wenn sie nur Leerzeichen enthält, und tut sonst nichts.
in <%= -%>
(mit =
):
Beispiele:
# Remove
ERB.new("a \nb <% 0 -%>\n c", nil, '-').result == "a \nb c" or raise
# Don't do anything: not followed by newline, but by space:
ERB.new("a\n<% 0 -%> \nc", nil, '-').result == "a\nb \nc" or raise
# Remove the current line because only whitesapaces:
Erubis::Eruby.new(" <% 0 %> \nb").result == 'b' or raise
# Same as above, thus useless because longer.
Erubis::Eruby.new(" <% 0 -%> \nb").result == 'b' or raise
# Don't do anything because line not empty.
Erubis::Eruby.new("a <% 0 %> \nb").result == "a \nb" or raise
Erubis::Eruby.new(" <% 0 %> a\nb").result == " a\nb" or raise
Erubis::Eruby.new(" <% 0 -%> a\nb").result == " a\nb" or raise
# Don't remove the current line because of `=`:
Erubis::Eruby.new(" <%= 0 %> \nb").result == " 0 \nb" or raise
# Remove the current line even with `=`:
Erubis::Eruby.new(" <%= 0 -%> \nb").result == " 0b" or raise
# Remove forward only because of `-` and non space before:
Erubis::Eruby.new("a <%= 0 -%> \nb").result == "a 0b" or raise
# Don't do anything because non-whitespace forward:
Erubis::Eruby.new(" <%= 0 -%> a\nb").result == " 0 a\nb" or raise
Was %-
tut:
ERB: entfernt Leerzeichen vor dem Tag und nach vorherigen Zeilenumbrüchen, aber nur, wenn vorher nur Leerzeichen vorhanden sind.
erubis: nutzlos, weil <%- %>
ist dasselbe wie <% %>
(ohne =
), und dies kann nicht mit =
was der einzige Fall ist, in dem -%
nützlich sein kann. Verwenden Sie dies also niemals.
Beispiele:
# Remove
ERB.new("a \n <%- 0 %> b\n c", nil, '-').result == "a \n b\n c" or raise
# b is not whitespace: do nothing:
ERB.new("a \nb <%- 0 %> c\n d", nil, '-').result == "a \nb c\n d" or raise
Was %-
y -%
gemeinsam tun
Die exakte Kombination beider Effekte getrennt.
Ich habe die <%%
literales Tag-Begrenzungszeichen als Antwort auf dieses Problem, weil es zu unklar ist. Dadurch wird erb angewiesen, das <%
Teil des Tags, der für js-Anwendungen wie die Anzeige von chart.js-Tooltips usw. erforderlich ist.
Update (Fehlerhafter Link korrigiert)
Alles über ERB finden Sie jetzt hier: https://puppet.com/docs/puppet/5.3/lang_template_erb.html#tags
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.