0

好的,愚蠢的新手问题:如何仅在需要时才换行?

我正在创建一个基本地址列表,如果地址不为空,我只想包含一行地址。如何保持空白行不打印?我尝试过包含 break 和 new line 标签,并尝试使用两种品种的 puts 和引号并转义斜杠,但似乎无法正确显示地址。

有没有办法让地址的每一行打印在自己的行上,或者如果没有信息可以简单地省略该行?

这是代码的当前版本:

<p><strong>Main Address</strong></p>
    <p><%= if @vendor.address1 || null
             @vendor.address1  #need a break here
           end %>
      <%= if @vendor.address2 || null
             @vendor.address2 #need a break here
           end %>
      <%= @vendor.city %>, <%= @vendor.state %> <%= @vendor.zip %></p>
4

2 回答 2

2

我会这样做:

<p>
  <strong>Main Address</strong>
</p>
<p>
<% unless @vendor.address1.blank? %>
  <%= @vendor.address1 %><br>
<% end %>
<% unless @vendor.address2.blank? %>
  <%= @vendor.address2 %><br>
<% end %>
  <%= @vendor.city %>, <%= @vendor.state %> <%= @vendor.zip %>
</p>

顺便说一句:|| null您的代码中的 Ruby 无效。null不存在,应该是nil。但即使您使用过nil,您的代码也不会像您期望的那样做。对于这类事情,你最好使用blank?.

于 2012-09-10T02:44:43.493 回答
-1
<p><strong>Main Address</strong></p>
        <p><%= @vendor.address1%><%= <br/> if @vendor.address1.blank? %>
          <%=  @vendor.address2%><%= <br/> if @vendor.address2.blank? %>
          <%= @vendor.city %>, <%= @vendor.state %> <%= @vendor.zip %></p>
于 2012-09-10T02:55:09.233 回答