如何在HTML元素存在的情况下呈现HTML元素?

时间:2018-02-10 18:23:54

标签: ruby-on-rails

如果有文本要放入页面,如何在页面中插入HTML元素?

例如,在下面的代码段中,如果somedata为空或为零,我希望第二个<li></li>不会添加到页面中:

<ul>
  <li>item</item>
  - magic_method(somedata) do |somedata|
    <li>
      <%= somedata %>
    </li>
</ul>

Rails(或HAML或ERB)中是否有内置方法?

更新:

PS。我知道我自己做的各种其他方法;我的问题是专门针对是否有Rails内置方式来完成上述工作。

1 个答案:

答案 0 :(得分:-1)

在Rails中执行此操作的标准方法是评估ERB模板中的条件。

<ul>
  <li>item</item>
  <% if somedata.present? %>
    <li>
      <%= somedata %>
    </li>
  <% end %>
</ul>

<% if %> . . . <% end %>之间的代码仅在条件评估为true(或truthy)时才会被评估和输出。请参阅Rails doc for the #present? method及其工作原理。这可能是一个很好的选择,具体取决于您期望somedata的对象类型。