我一直在努力遵循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语句的操作,但这看起来很混乱。有什么建议?
答案 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>