ruby-on-rails - 无方法错误 : undefined method `symbolize_keys!' for Hash

标签 ruby-on-rails hash rake rakefile

我正在尝试使用 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/

相关文章:

算法复杂性和安全性 : MD5 or SHA1?

java - HashMap 和并发 - 不同的键

ruby-on-rails - 在任何来源中都找不到 rake-10.0.3

ruby-on-rails - 新手,关于 Rake 任务语法

javascript - rails : couldn't find file 'typeahead.js' . 。直到我删除 'data-turbolinks'

ruby-on-rails - Rails 状态 406 POST 响应

ruby-on-rails - 如何在 rails (4.1.5) 中创建装置(对于设计用户)作为 yml.erb?

ruby-on-rails - Rails 模型关联的 where() 子句?

c# - 尝试将 C# 函数移植到 PHP5

ruby-on-rails - 编写一个带有身份验证的 Ruby/Rake 任务机器人来下载需要登录的数据