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

Schreibe einen Kommentar