在 Rails 中使用视图检查数组
Posted
技术标签:
【中文标题】在 Rails 中使用视图检查数组【英文标题】:Checking an array with views in Rails 【发布时间】:2013-01-04 18:03:44 【问题描述】:我有一个带有一些视图的 rails 应用程序,如果视图是数组不包含任何数据,我想显示一些不同的东西。目前我的观点是这样的:
<% @trips.each do |trip| %>
<p><%= trip.id %> | <%= trip.name %></p>
<% end %>
但是如果 @trips
里面没有任何内容,有没有办法可以显示一些不同的文本?
【问题讨论】:
【参考方案1】:如果你使用部分:
trips/_trip.html
<p><%= trip.id %> | <%= trip.name %></p>
你的看法
<%= render @trips || 'No trip' %>
【讨论】:
【参考方案2】:您可以使用 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 %>
【讨论】:
感谢 JW8 什么时候用比较合适?感谢您抽出宝贵时间回复! @davessh,它们是等价的 - 空白?更简洁一点,并使用 Ruby 习惯用法,而第一种方法是在其他语言中进行类似的检查。【参考方案3】:当然,只要使用 if there,像这样
<% if @trips.blank? %>
<p>No trips</p>
<% else %>
<% @trips.each do |trip| %>
<p><%= trip.id %> | <%= trip.name %></p>
<% end %>
<% end %>
【讨论】:
【参考方案4】:使用 if 语句并像这样检查它是否为空或为空
<% 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 代码来检查数组是 null 还是空
【讨论】:
@trips.nil? || @trips.empty?
可以写成@trips.blank?
,就像在 ewiinnnnn 的回答中一样
非常真实,直到我发布我的帖子后我才看到他的回复,我会编辑以上是关于在 Rails 中使用视图检查数组的主要内容,如果未能解决你的问题,请参考以下文章