У меня есть шаблон ERB для отправки электронной почты.
Name: <%= @user.name %>
<% if @user.phone.present? %>
Phone: <%= @user.phone %>
<% end %>
Address: <%= @user.address %>
Я пытаюсь удалить пустую строку между Name
и Address
когда Phone
пуст.
Возвращенный результат
Name: John Miller
Address: X124 Dummy Lane, Dummy City, CA
Ожидаемый результат
Name: John Miller
Address: X124 Dummy Lane, Dummy City, CA
Я пытался использовать теги <%--%>
(для удаления новой строки), но безуспешно.
Name: <%= @user.name %>
<%- if @user.phone.present? -%>
Phone: <%= @user.phone %>
<%- end -%>
Address: <%= @user.address -%>
Как мне обойти эту проблему?
PS: я на Rails 2.3.8.
Примечание 1
Прямо сейчас я работаю над этой проблемой, используя рубиновые хакеры.
Вспомогательный метод:
def display_fields(names, user)
names.collect do |name|
value = user.send(name)
"#{name}: #{value}" unless value.blank?
end.compact.join("\n")
end
Посмотреть код
<%= display_fields(["Name", "Phone", "Address"], @user) %>
Но это выглядит довольно неуклюже для меня. Мне интересно знать, смог ли кто-нибудь заставить работать <%--%>
в шаблонах представления ERB.