Ruby on rails 3 有吗?还是空的?铁路难题

Ruby on rails 3 有吗?还是空的?铁路难题,ruby-on-rails-3,Ruby On Rails 3,我试图检查数组中是否有任何内容,但我对结果感到困惑 markets.any? do |m| m["market"]["name"] == "Atlanta" end.should be_true 返回当您没有预料到它时,您有一个nil对象!,您可能希望有一个数组实例。 但是 不会出错。但对我来说,这似乎是倒退,因为我想测试的是真的,不是假的。我不明白为什么,有吗?我认为是零。顺便说一句,数组中有3项,没有一项为零。根据您的评论,市场密钥不存在于哈希中,请尝试以下操作 markets.a

我试图检查数组中是否有任何内容,但我对结果感到困惑

markets.any? do |m|
    m["market"]["name"] == "Atlanta"
end.should be_true
返回
当您没有预料到它时,您有一个nil对象!,您可能希望有一个数组实例。

但是


不会出错。但对我来说,这似乎是倒退,因为我想测试的是真的,不是假的。我不明白为什么,有吗?我认为是零。顺便说一句,数组中有3项,没有一项为零。

根据您的评论,市场密钥不存在于哈希中,请尝试以下操作

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

礼物?可能就是你要找的

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

您的市场阵列是什么样子的?它有任何零对象吗?[{“name”:“Atlanta”,“created_at”:“2011-11-18T15:49:49Z”,“updated_at”:“2011-11-18T15:49:49Z”,“id”:38}]Naren,这就成功了。在你看来,哪种方法更好。或者这只是个人喜好,因为两者都有效?使用任何一种?方法,我不确定是否为空?因为在ruby(1.9.3)中是空的?不接受任何参数,并且根据您的代码,给定的块永远不会执行。因为数组不是空的,所以得到的是false。任何如果您想检查数组中是否有任何元素的名称=='Atlanta'
markets.present? do |m|
    m["name"] == "Atlanta"
end.should be_true