在Rails中检查包含视图的数组

时间:2013-01-04 18:03:44

标签: ruby-on-rails ruby arrays views

我有一个带有一些视图的rails应用程序,如果视图是数组不包含任何数据,我想显示不同的东西。目前我的观点是这样的:

<% @trips.each do |trip| %>
  <p><%= trip.id %> | <%= trip.name %></p>
<% end %>

但如果@trips内没有任何内容,我是否可以展示一些不同的文字?

4 个答案:

答案 0 :(得分:7)

如果你使用partials:

<强>跳闸/ _trip.html

<p><%= trip.id %> | <%= trip.name %></p>

您的观点

<%= render @trips || 'No trip' %>

答案 1 :(得分:1)

当然,只需使用if,就像这样

<% if @trips.blank? %>
  <p>No trips</p>
<% else %>
  <% @trips.each do |trip| %>
    <p><%= trip.id %> | <%= trip.name %></p>
  <% end %>
<% end %>

答案 2 :(得分:1)

使用if语句并检查它是否为null或为空

<% if @trips.nil? || @trips.empty? %>
  <p>There are no trips</p>
<% else %>
  <% @trips.each do |trip| %>
    <p><%= trip.id %> | <%= trip.name %></p>
  <% end %>
<% end %>

修改

如果使用rails你可能想要使用@ trips.blank ?,如果你决定使用另一个ruby框架或项目,那么你可以使用上面的if / else代码来检查数组是空还是空

答案 3 :(得分:1)

您可以使用if / else条件检查:

<% if (@trips != nil) then %>
  <p><%= trip.id %> | <%= trip.name %></p>
<% else %>
  <p>Some message</p>
<% end %>

<% if (@trips.blank?) then %>
  <p>Some message</p>
<% else %>
  <p><%= trip.id %> | <%= trip.name %></p>
<% end %>