数组.any?或.empty? Rails中的难题

时间:2011-11-18 15:58:03

标签: ruby-on-rails-3

我正在尝试检查数组中是否有任何内容,我对结果感到困惑。

markets.any? do |m|
    m["market"]["name"] == "Atlanta"
end.should be_true

返回You have a nil object when you didn't expect it!, You might have expected an instance of Array.

但是

markets.empty? do |m|
    m["market"]["name"] == "Atlanta"
end.should be_false

没有错误。但它似乎倒退了,因为我想测试真实,而不是虚假。我不明白为什么。认为这是愚蠢的。顺便说一下,数组中有3个项目,没有一个是零。

2 个答案:

答案 0 :(得分:9)

根据您的评论,市场密钥不存在于哈希中,请尝试按照

markets.any? do |m|
    m["name"] == "Atlanta"
end.should be_true

答案 1 :(得分:0)

本?可能就是你要找的......

markets.present? do |m|
    m["name"] == "Atlanta"
end.should be_true