在Rails中显示空列表的最佳方法

时间:2018-02-12 05:05:31

标签: ruby-on-rails

我一直在努力遵循Rails中的最佳实践,以便在将来节省时间。

我在视图中显示的结果超过0。

<% @terms.each do |t| %>
  <li class="media">
    <div class="media-body">
      <div class="media-heading text-semibold"><%= link_to "#{t.name}", authenticated_root_path %></div>
      <span class="text-muted"><%= link_to 'Settings', edit_account_term_path(@account, t) %></span>
    </div>
  </li>
<% end %>

如果术语计数为零,显示不同视图的最佳方法是什么?我可以在视图中执行类似于简单if语句的操作,但这看起来很混乱。有什么建议?

2 个答案:

答案 0 :(得分:1)

这个怎么样:

<% @terms.each do |t| %>
  <li class="media">
    <div class="media-body">
      <div class="media-heading text-semibold"><%= link_to "#{t.name}", authenticated_root_path %></div>
      <span class="text-muted"><%= link_to 'Settings', edit_account_term_path(@account, t) %></span>
    </div>
  </li>
<% end.empty? and begin %>
  <li class="media">
    <!-- nothing to see -->
  </li>  
<% end %>

答案 1 :(得分:1)

您也可以将代码移动到部分代码。

<%= render(:partial => 'terms', :collection => @terms) || 'There are no terms' %>

部分:

<li class="media">
  <div class="media-body">
    <div class="media-heading text-semibold"><%= link_to "#{term.name}", authenticated_root_path %></div>
      <span class="text-muted"><%= link_to 'Settings', edit_account_term_path(@account, term) %></span>
    </div>
  </li>
</li>