在ruby中使用`include?`来检查是否存在哈希值

时间:2009-11-15 09:02:54

标签: ruby-on-rails ruby

我知道include?是如何工作的,但是在使用多维数组或哈希时这是不是很清楚(这可能是哈希?)

例如,给定我的哈希值如下:

@user.badges => [{:id => 1, :name => 'blahh', :description => 'blah blah blah'}, {:id => 2, :name => 'blahh', :description => 'blah blah blah'}]

我可以看看它是否有一个id为1的对象吗?

if @user.badges.include?(:id => 1)
  # do something
end

它似乎不起作用,我怎么能正确地编写这个方法?

1 个答案:

答案 0 :(得分:13)

这不是有效的Ruby语法。你想要:

@user.badges.any? { |b| b[:id] == 1 }