if语句在nil时隐藏通知

时间:2013-08-30 09:41:17

标签: ruby-on-rails twitter-bootstrap if-statement

我有这段代码:

<div class="alert alert-success">
  <a href="#" class="alert-link"><%= notice %></a>
</div>

如果notice不是nil,我需要在它周围加上一个if语句来显示整个div。我尝试了几种方法,但无法正确使用语法。

2 个答案:

答案 0 :(得分:7)

您必须使用Object类ruby

nil?方法
<% unless notice.nil? %>
  <div class="alert alert-success">
    <a href="#" class="alert-link"><%= notice %></a>
  </div>
<% end %>

如果通知不是零,则上面的代码显示整个div。

我还建议您read difference between nil, blank? & present

答案 1 :(得分:0)

所有给定的激光都是正确的,尽管我更喜欢使用导轨存在检查:

<% if notice.present? %>
  <div class="alert alert-success">
    <a href="#" class="alert-link"><%= notice %></a>
  </div>
<% end %>

这是一个细节,但是更健壮,因为当使用空字符串时这个条件将正确地评估为false(或者如果您将来可能使用多个通知,则为空数组)。

它读起来完美,不是吗:)。