ruby-on-rails - 在 ruby​​ 中使用 `include?` 来检查是否有东西在哈希中

标签 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

好像不行,这个方法怎么写好?

最佳答案

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

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

关于ruby-on-rails - 在 ruby​​ 中使用 `include?` 来检查是否有东西在哈希中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1737040/

相关文章:

mysql - 如果一个或另一个或两个字段匹配,如何返回 SQL 查询

ruby-on-rails - SSL、Github 和 Heroku——插入安全吗?

ruby-on-rails - Controller 中的额外实例变量在 View 中为零?

Ruby 单引号和双引号

ruby-on-rails - 弃用警告:ActionController::TestCase HTTP 请求方法将只接受关键字参数

ruby-on-rails - 在 Rails 中实例化对象时如何初始化属性?

ruby-on-rails - 无法加载此类文件 -- 1.9/bcrypt_ext (LoadError)

ruby-on-rails - 字符串格式检查(部分随机字符串)

ruby - 我怎样才能在 MiniTest 错误时转到 byebug?

ruby-on-rails - 告诉 Bundler 从特定 gem 的安装中排除某些 gem