如果有文本要放入页面,如何在页面中插入HTML元素?
例如,在下面的代码段中,如果somedata为空或为零,我希望第二个<li></li>
不会添加到页面中:
<ul>
<li>item</item>
- magic_method(somedata) do |somedata|
<li>
<%= somedata %>
</li>
</ul>
Rails(或HAML或ERB)中是否有内置方法?
更新:
PS。我知道我自己做的各种其他方法;我的问题是专门针对是否有Rails内置方式来完成上述工作。
答案 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
的对象类型。