0

我有一堆要显示的列表项。有些会有价值,有些则没有。如果它们都有很好的值,但如果只有 3 个值有值,我如何隐藏没有值的列表项?

<li><%= @post.color %></li>
<li><%= @post.make %></li>
<li><%= @post.model %></li>
<li><%= @post.cupholder %></li>

我以为我可以做类似的事情

<% if @post.attr.each do %> 
  <li><%= @post.color %></li>
  <li><%= @post.make %></li>
...
<% end %>

或者

<% if @post.make %>
  <li><%= @post.make %></li>
<% end %>

但我无法得到它,现在我什至不确定要问/搜索什么。

4

2 回答 2

1

尝试

<% unless @post.color.blank? %><li><%= @post.color %></li><% end %>
<% unless @post.make.blank? %><li><%= @post.make %></li><% end %>
<% unless @post.model.blank? %><li><%= @post.model %></li><% end %>
<% unless @post.cupholder.blank? %><li><%= @post.cupholder %></li><% end %>
于 2013-01-09T06:33:50.607 回答
0

尝试使用帮助程序来保持您的视图代码干净,例如 ( posts_helper.rb)

module PostsHelper
  def li_unless_blank(val)
    val.blank? ? '' : "<li>#{val}</li>"
  end
end

在你看来

<%= li_unless_blank @post.color %>
<%= li_unless_blank @post.make %>
<%= li_unless_blank @post.model %>
...
于 2013-01-09T06:39:11.487 回答