如何使用Ruby和/或Rails检查数组索引是否存在

时间:2016-09-06 01:15:19

标签: ruby-on-rails arrays ruby

是否有Ruby(最好)或Rails方法来检查数组的第二个索引是否存在?

在我的Rails(4.2.6)应用程序中,我在视图中有以下代码,显示了一组照片的前两个缩略图:

<% if array.photos.any? %>
  <%= image_tag array.photos.first.image.url(:thumb) %>
  <%= image_tag array.photos[1].image.url(:thumb) %>
<% end %>

但是,如果数组中没有第二项,则会出现错误

我已尝试使用以下if语句来使第二个缩略图的呈现成为条件,但它们不起作用:

<% if array.photos.include?(1) %>
<% if array.photos.second? %>
<% if array.photos[1]? %>
<% if array.photos[1].any? %>

我认为另一种获得我想要的方法就是简单地检查数组的长度

我仍然想知道Ruby(或Rails)是否有方法或方法来检查数组中是否存在特定索引。提前致谢

编辑:澄清我只想显示数组中的前两个缩略图,如果有的话

2 个答案:

答案 0 :(得分:7)

您可以使用.each,但是如果您想使用此方法。 而不是:

<%= image_tag array.photos[1].image.url(:thumb) %>

也许你可以使用它:

<%= if(!array.photos[1].nil?) image_tag array.photos[1].image.url(:thumb) %>

答案 1 :(得分:0)

在这里,为什么不

(0...array.photos.size).each do |photo|
    ......
end

array.photos.each do |photo|
    ......
end