【问题标题】:NoMethodError: undefined method `symbolize_keys!' for HashNoMethodError:未定义的方法`symbolize_keys!对于哈希
【发布时间】:2015-02-22 00:38:09
【问题描述】:

我正在尝试在 Rails 之外使用Hashie。在我的 rakefile 中,我包含了 require hashie/hash,但我仍然得到了 NoMethodError。我试过使用require hash;那里也没有运气。

这是失败的那一行:

YAML.load(ERB.new(File.read('../prefs.yml')).result)['dev'].symbolize_keys!

当我 inspect 哈希时,它看起来正确并采用以下形式:{'key':'value'}。我希望密钥是一个符号,但我不想在 Rails 3 和 4 之间切换,所以我安装了Hashie 并将其添加到我的 Rakefile 中,但这似乎并没有解决问题。

谁能告诉我为什么会出现这个错误?

【问题讨论】:

    标签: ruby-on-rails hash rake rakefile


    【解决方案1】:

    symbolize_keys! 方法属于 activesupport(github rubygems),如果没有这个 gem,你就不能使用它。

    为了使用它,请将其添加到您的 Gemfile(或通过 bundle add activesupport) 并在您的代码中明确要求它

    require 'active_support/core_ext/hash/keys'
    

    或者你可以写一个像in this gist这样的polyfill

    https://rubygems.org/gems/activesupport/

    【讨论】:

    • 这是一个绝妙的答案!!非常感谢:)
    猜你喜欢
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多