ERB Template entfernt die Schlepplinie
Habe ich ein ERB-template für das senden einer E-Mail.
Name: <%= @user.name %>
<% if @user.phone.present? %>
Phone: <%= @user.phone %>
<% end %>
Address: <%= @user.address %>
Ich versuche, entfernen Sie die Leerzeile zwischen Name
und Address
wenn Phone
leer ist.
Ergebnis
Name: John Miller
Address: X124 Dummy Lane, Dummy City, CA
Erwartete Ergebnis
Name: John Miller
Address: X124 Dummy Lane, Dummy City, CA
Ich habe versucht, zu verwenden <%--%>
tags(entfernen Sie die nachfolgende neue Zeile) ohne Erfolg.
Name: <%= @user.name %>
<%- if @user.phone.present? -%>
Phone: <%= @user.phone %>
<%- end -%>
Address: <%= @user.address -%>
Wie kann ich dieses Problem umgehen?
PS: ich bin on Rails 2.3.8.
Hinweis 1
Jetzt bin ich arbeiten, um das Problem mit ruby Hack.
Helfer-Methode:
def display_fields(names, user)
names.collect do |name|
value = user.send(name)
"#{name}: #{value}" unless value.blank?
end.compact.join("\n")
end
Anzeigen-code
<%= display_fields(["Name", "Phone", "Address"], @user) %>
Aber das sieht ziemlich klobig für mich. Ich bin daran interessiert zu wissen, wenn jemand in der Lage war, um die <%--%>
arbeiten im ERB-view-templates.
InformationsquelleAutor der Frage Harish Shetty | 2011-01-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zum aktivieren der trim-Modus haben Sie zum instanziieren des ERB-Objekt mit '-' als Dritten parameter
InformationsquelleAutor der Antwort willmcneilly
Musste ich kombinieren die Antworten von willmcneilly, RobinBrouwer und fbo.
aktivieren der trim-Modus
Änderung -%>
Und schließlich, konvertieren von dos zu unix. Ich habe folgende in Vim:
InformationsquelleAutor der Antwort Scymex
Versuchen Sie dies:
Auch, weiß nicht, ob dies funktionieren wird:
Wenn das nicht funktioniert, dies sollte den trick tun:
InformationsquelleAutor der Antwort RobinBrouwer
Ich hatte das gleiche problem,
es wurde durch Leerzeichen afer
%>
Vielleicht wird es Ihnen helfen,
François
InformationsquelleAutor der Antwort fbo
Nach den neuesten rails docs (http://guides.rubyonrails.org/v2.3.8/configuring.html#configuring-action-view):
Sie verweisen auf den ERB-docs (http://www.ruby-doc.org/stdlib-2.0.0/libdoc/erb/rdoc/ERB.html#method-c-new)
Also alles, was Sie benötigen sollten zu tun haben, ist der Strich in Ihr schließen erb-tag wie
-%>
. Möglicherweise müssen Sie das Spiel mit der trim-Modus, wenn Sie sehen, dass unerwartete Ergebnisse.InformationsquelleAutor der Antwort codenamev
Durch die ' > ' - option, werden Sie weglassen Zeilenumbrüche für die Linien enden in %>
Das heißt, Sie wickeln kann Ruby-code innerhalb von < % % > - tags, wie üblich.
Leider habe ich noch keinen Weg gefunden, entfernen Sie das Leerzeichen vor dem ersten <% tag.
InformationsquelleAutor der Antwort Sebastian