Czy ktoś może opisać użycie następujących znaków, które są używane w pliku ERB:
<% %>
<%= %>
<% -%>
<%# %>
jaki jest pożytek z każdego z nich?
ruby-on-rails
ruby
templates
erb
simo
źródło
źródło
-%>
i stackoverflow.com/questions/3952403/... for<%=
, stackoverflow.com/questions/3901619/... for<%#
.<%= %>
i<%= -%>
są różne: tylko ta ostatnia usuwa końcowe białe znaki.Odpowiedzi:
Wykonuje kod ruby w nawiasach.
Drukuje coś w pliku erb.
Zapobiega łamaniu linii po wyrażeniu.
Komentuje kod w nawiasach; nie wysyłane do klienta (w przeciwieństwie do komentarzy HTML).
Odwiedź Ruby Doc, aby uzyskać więcej informacji o ERB.
źródło
<%#
to normalne<%
z komentarzem Ruby#
zaraz po nim ... Tak, fajnie jest myśleć, że to coś wyjątkowego, ale czy nie jest to tylko idiom ERB, a nie specjalna konstrukcja?<%...%>
,<%#...%>
komentuje to wszystko , czego nie zrobiłby, gdyby to był zwykły komentarz (tzn. Komentowałby tylko wiersz włączone).<% %>
i<%- and -%>
dotyczą dowolnego kodu Ruby, ale nie generują wyników (np. instrukcje if). dwa są takie same.<%= %>
służy do wyprowadzania wyników kodu Ruby<%# %>
jest komentarzem ERBOto dobry przewodnik: http://api.rubyonrails.org/classes/ActionView/Base.html
źródło
<%-
dla wiodących białych znaków i nigdzie nie widzę tego udokumentowane. Jesteś pewien? Może to inny smak ERB. W dokumentach stdlib nie ma takiej opcji.Railsy domyślnie nie używają ERB stdlib , używa Erubisa . Źródła: Skomentuj ten Dev jest , gemspec actionView jest , akceptowaną seryjnej prośba zrobiłem pisząc to .
Tam są różnice zachowania między nimi, w szczególności w zakresie sposobów operatorów myślników
%-
i-%
pracy.Dokumentacja jest niewystarczająca. Gdzie jest zdefiniowany oficjalnie format ERB Ruby?więc poniższe wnioski są empiryczne.
Wszystkie testy zakładają:
Kiedy możesz użyć
-
-
dotrim_mode
opcjiERB.new
korzystania z niego.Przykłady:
Co
-%
robi:ERB: usuń następny znak, jeśli jest to nowy wiersz.
erubis:
w
<% %>
(bez=
),-
jest bezużyteczne, ponieważ<% %>
i<% -%>
są takie same.<% %>
usuwa bieżący wiersz, jeśli zawiera tylko białe znaki, i nie robi nic innego.w
<%= -%>
(z=
):Przykłady:
Co
%-
robi:ERB: usuń białe spacje przed tagiem i po poprzednich znakach nowej linii, ale tylko jeśli wcześniej były tylko białe spacje.
erubis: bezużyteczny, ponieważ
<%- %>
jest taki sam jak<% %>
(bez=
) i nie można tego użyć w=
tym przypadku, gdy jest to jedyny przypadek, w którym-%
może być użyteczny. Więc nigdy tego nie używaj.Przykłady:
Co
%-
i-%
robić razemDokładna kombinacja obu efektów osobno.
źródło
<% %>
: Wykonuje kod ruby<%= %>
: Drukuje do pliku Erb. Lub przeglądarka<% -%>
: Zapobiega łamaniu linii po wyrażeniu.<%# %>
: Komentarz ERBźródło
Dodałem
<%%
dosłowny separator znaczników jako odpowiedź na to z powodu jego niejasności. Dzięki temu erb nie będzie interpretował<%
części tagu, która jest niezbędna w aplikacjach js, takich jak wyświetlanie podpowiedzi chart.js itp.Aktualizacja (Naprawiono uszkodzony link)
Wszystko o ERB można teraz znaleźć tutaj: https://puppet.com/docs/puppet/5.3/lang_template_erb.html#tags
źródło
Są one używane w rubinach na szynach :
<%%>: -
Znaczniki <%%> służą do wykonywania kodu Ruby, który niczego nie zwraca, np. Warunków, pętli lub bloków. Np .: -
<% =%>: -
służy do wyświetlania treści.
<% -%>: -
Railsy rozszerzają ERB, dzięki czemu można pomijać nowy wiersz po prostu dodając łącznik końcowy do znaczników w szablonach Railsów
<% #%>: -
skomentuj kod
źródło
<% %>
wykonuje tam kod, ale nie drukuje wyniku, na przykład:Możemy go użyć, jeśli jeszcze w pliku erb.
Wydrukuje
temp is 1
<%= %>
wykonuje kod, a także wypisuje dane wyjściowe, na przykład:Możemy wydrukować wartość zmiennej szyny.
Wydrukuje
1
<% -%>
Nie robi to różnicy, ponieważ nic nie drukuje,-%>
ma tylko sens<%= -%>
, uniknie to nowej linii.<%# %>
skomentuje napisany w tym kodzie kod.źródło