ruby-on-rails - Heroku 工具带 `initialize' : no implicit conversion of nil into Hash (TypeError)

标签 ruby-on-rails heroku

我检查了我的系统更新,它显示heroku和heroku工具带都更新了,但之后我收到了这个错误

heroku/vendor/gems/json-1.7.7/lib/json/common.rb:67:in `initialize': no implicit conversion of nil into Hash (TypeError)

我无法运行任何heroku命令。以前工作正常,但现在不行。

heroku,heroku-versions 3.9.4,之前是 3.9.1

 xxxxx@xxxxx:~$ heroku 
/usr/local/heroku/vendor/gems/json-1.7.7/lib/json/common.rb:67:in `initialize': no implicit conversion of nil into Hash (TypeError)
    from /usr/local/heroku/vendor/gems/json-1.7.7/lib/json/common.rb:67:in `new'
    from /usr/local/heroku/vendor/gems/json-1.7.7/lib/json/common.rb:67:in `generator='
    from /usr/local/heroku/vendor/gems/json-1.7.7/lib/json/ext.rb:17:in `<module:Ext>'
    from /usr/local/heroku/vendor/gems/json-1.7.7/lib/json/ext.rb:12:in `<module:JSON>'
    from /usr/local/heroku/vendor/gems/json-1.7.7/lib/json/ext.rb:9:in `<top (required)>'
    from /home/akaruilabs/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/akaruilabs/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/heroku/vendor/gems/json-1.7.7/lib/json.rb:58:in `<module:JSON>'
    from /usr/local/heroku/vendor/gems/json-1.7.7/lib/json.rb:54:in `<top (required)>'
    from /home/akaruilabs/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/akaruilabs/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/heroku/lib/heroku/cli.rb:18:in `<top (required)>'
    from /home/akaruilabs/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/akaruilabs/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/heroku/bin/heroku:23:in `<main>'

最佳答案

我也有同样的错误。请注意,产生错误的 json 库不是来自您的 gems,而是来自 heroku toolbelt 发行版。所以更新 json 是不够的,我认为这应该作为错误报告给heroku。

我目前的解决方法是安装一个新的 json gem 并从 heroku 工具带中删除其过时版本 1.7.7:

gem install json
sudo mv /usr/local/heroku/vendor/gems/json-1.7.7 /some/tmp
gem list json
  *** LOCAL GEMS ***
  json (1.8.1)
heroku version
  heroku-toolbelt/3.9.4 (x86_64-linux) ruby/2.1.1

更新:似乎此问题已在 3.9.5 中修复

关于ruby-on-rails - Heroku 工具带 `initialize' : no implicit conversion of nil into Hash (TypeError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24881973/

相关文章:

ruby-on-rails - Rails I18n 验证弃用警告

jquery - 为图像添加灯箱

ruby-on-rails - Rails exception_handler gem

javascript - 从 Rails 3 中的 application.js 访问 current_user 变量

css - 在列中显示元素 (Rails)

python - 在两个独立的 Heroku 应用程序上将 API 请求从 React 前端代理到 Flask 后端

ruby - OpenSSL::SSL::SSLErrorWaitReadable 读取会阻塞

django - Heroku 和 Django : error "Couldn' t find that app"from terminal/CLI

node.js - 将 TCP 服务器部署到 Heroku

ssl - 在 Heroku 上使用自定义域设置 SSL 端点