我正在尝试使用 Hashie
在 Rails 之外。在我的 rakefile 中,我包含了 require hashie/hash
,但我还是得到了 NoMethodError
.我试过使用 require hash
;那里也没有运气。
这是它失败的行:
YAML.load(ERB.new(File.read('../prefs.yml')).result)['dev'].symbolize_keys!
当我inspect
哈希,它看起来是正确的并采用以下形式:{'key':'value'}
.我希望 key 是一个符号,但我不想在 Rails 3 和 4 之间切换,所以我安装了 Hashie
并将其添加到我的 Rakefile 中,但这似乎并没有解决问题。谁能告诉我为什么我可能会收到此错误?
最佳答案
symbolize_keys!
方法属于activesupport
( github rubygems ) 没有这个 gem 你就不能使用它。
为了使用它,将它添加到您的 Gemfile(或通过 bundle add activesupport
)
并在您的代码中明确要求它
require 'active_support/core_ext/hash/keys'
或者您可以编写使用 polyfill,如 in this gist
https://rubygems.org/gems/activesupport/
关于ruby-on-rails - 无方法错误 : undefined method `symbolize_keys!' for Hash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27627663/