3

我有这个代码:

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

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

4

2 回答 2

8

你必须使用ruby​​ 类的nil?方法Object

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

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

我还建议您阅读, &之间的区别nilblank?present

于 2013-08-30T09:44:43.123 回答
2

所有给定的分析器都是正确的,尽管我更喜欢使用 rails 存在检查的这个:

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

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

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

于 2013-08-30T09:49:33.430 回答