在部署到heroku时,Bundle失败,未定义的方法`ruby'

时间:2013-05-01 18:28:12

标签: heroku bundler

我正在尝试将一个Rack应用程序部署到heroku并且它在捆绑步骤中失败了:

-----> Fetching custom git buildpack... done
-----> Ruby/Rack app detected
-----> Using RUBY_VERSION: ruby-1.9.3-p0
-----> Installing dependencies using Bundler version 1.1.rc.7
   Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment
   /tmp/build_158s9o0ec0gdk/Gemfile:2:in `evaluate': undefined method `ruby' for #<Bundler::Dsl:0x00000001c7c418> (NoMethodError)
 (...)
   /app/bin/bundle:23:in `load'
   /app/bin/bundle:23:in `<main>'
   There was an error in your Gemfile, and Bundler cannot continue.
!
!     Failed to install gems via Bundler.
!
!     Heroku push rejected, failed to compile Ruby/rack app

失败是undefined method 'ruby' for #<Bundler::Dsl:0x00000001c7c418> (NoMethodError)

这来自我的Gemfile

source 'https://rubygems.org'
ruby '2.0.0'

我认为这是因为在1.2版本之前该方法没有添加到Bundler,而heroku似乎使用版本1.1.rc.7。

我不知道如何升级heroku版本的bundler。我已经在Cedar堆栈上了。

1 个答案:

答案 0 :(得分:1)

日志显示Fetching custom git buildpack - 看起来你正在使用自定义buildpack,这可能解释了为什么使用旧版本的Bundler。

确实

heroku config:get BUILDPACK_URL

显示什么?您可能只需要停止使用自定义buildpack,尝试

heroku config:unset BUILDPACK_URL

清除config var并恢复为正常的buildpack。