我有一个数组 @horses = [],我用一些随机的马填充。

如何检查我的 @horses 数组是否包含已包含(存在)的马?

我试过类似的东西:

@suggested_horses = []
  @suggested_horses << Horse.find(:first,:offset=>rand(Horse.count))
  while @suggested_horses.length < 8
    horse = Horse.find(:first,:offset=>rand(Horse.count))
    unless @suggested_horses.exists?(horse.id)
       @suggested_horses<< horse
    end
  end

我也尝试过 include? 但我看到它仅用于字符串。使用 exists? 我收到以下错误:
undefined method `exists?' for #<Array:0xc11c0b8>

所以问题是如何检查我的阵列是否已经包含一匹“马”,以便我不会用同一匹马填充它?

最佳答案

Ruby 中的数组没有 exists? 方法,但它们有 include? 方法 as described in the docs
就像是

unless @suggested_horses.include?(horse)
   @suggested_horses << horse
end

应该开箱即用。

关于ruby-on-rails - 如何检查我的数组是否包含对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3343861/

10-16 15:26
查看更多