NoMethodError: 未定义的方法 `symbolize_keys!' 对于哈希

use*_*303 6 hash rake ruby-on-rails rakefile

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

这是它失败的行:

YAML.load(ERB.new(File.read('../prefs.yml')).result)['dev'].symbolize_keys!
Run Code Online (Sandbox Code Playgroud)

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

谁能告诉我为什么我可能会收到此错误?

Зел*_*ный 4

symbolize_keys!方法属于activesupportgithub ruby​​gems),如果没有这个 gem,你就无法使用它。

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

require 'active_support/core_ext/hash/keys'
Run Code Online (Sandbox Code Playgroud)

或者你可以像这个要点中那样编写使用polyfill

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