Heroku Ruby版本不升级?

我正在努力改变Heroku上的Ruby版本。 我使用带有rails 4的Ruby 2.0.0。

我的Gemfile有:

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

Heroku中的路径指向:

 $ heroku config -s | grep PATH PATH=bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin 

当我推动我的应用程序时,我可以看到:

 Fetching repository, done. Counting objects: 7, done. Delta compression using up to 4 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 431 bytes | 0 bytes/s, done. Total 4 (delta 3), reused 0 (delta 0) -----> Ruby app detected -----> Compiling Ruby/Rails -----> Using Ruby version: ruby-2.0.0 -----> Installing dependencies using Bundler version 1.3.2 Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment Using rake (10.1.1) Using i18n (0.6.9) Using minitest (4.7.5) Using multi_json (1.8.2) Using atomic (1.1.14) Using thread_safe (0.1.3) Using tzinfo (0.3.38) Using activesupport (4.0.0.rc1) Using builder (3.1.4) Using erubis (2.7.0) Using rack (1.5.2) Using rack-test (0.6.2) Using actionpack (4.0.0.rc1) Using mime-types (1.25.1) Using polyglot (0.3.3) Using treetop (1.4.15) Using mail (2.5.4) Using actionmailer (4.0.0.rc1) Using activemodel (4.0.0.rc1) Using activerecord-deprecated_finders (1.0.3) Using arel (4.0.1) Using activerecord (4.0.0.rc1) Using addressable (2.3.5) Using bcrypt-ruby (3.1.2) Using coffee-script-source (1.6.3) Using execjs (2.0.2) Using coffee-script (2.2.0) Using thor (0.18.1) Using railties (4.0.0.rc1) Using coffee-rails (4.0.0) Using orm_adapter (0.5.0) Using warden (1.2.3) Using devise (3.0.4) Using excon (0.25.3) Using geocoder (1.1.9) Using gmapsjs (0.2.30.1) Using heroku-api (0.3.15) Using launchy (2.4.2) Using netrc (0.7.7) Using rest-client (1.6.7) Using rubyzip (1.1.0) Using heroku (3.2.1) Using hike (1.2.3) Using jbuilder (1.0.2) Using jquery-rails (3.0.4) Using jquery-ui-rails (4.1.1) Using json (1.8.1) Using libv8 (3.16.14.3) Using nifty-generators (0.4.6) Using pg (0.17.1) Using bundler (1.3.2) Using tilt (1.4.1) Using sprockets (2.10.1) Using sprockets-rails (2.0.1) Using rails (4.0.0.rc1) Using rails_serve_static_assets (0.0.2) Using rails_stdout_logging (0.0.3) Using rails_12factor (0.0.2) Using rdoc (3.12.2) Using ref (1.0.5) Using sass (3.2.13) Using sass-rails (4.0.0) Using sdoc (0.3.20) Using therubyracer (0.12.0) Using turbolinks (2.1.0) Using uglifier (2.4.0) Using will_paginate (3.0.5) Your bundle is complete! It was installed into ./vendor/bundle Bundle completed (0.46s) Cleaning up the bundler cache. Removing rails_log_stdout (01b5bcc572e3) Removing rails3_serve_static_assets (84910ceb4ca2) -----> Writing config/database.yml to read from DATABASE_URL -----> Preparing app for Rails asset pipeline Running: rake assets:precompile Asset precompilation completed (3.59s) Cleaning assets -----> Discovering process types Procfile declares types -> (none) Default types for Ruby -> console, rake, web, worker -----> Compressing... done, 33.3MB -----> Launching... done, v17 http://rocky-shore-1207.herokuapp.com deployed to Heroku To git@heroku.com:rocky-shore-1207.git 05cf948..73b6cfa master -> master 

由于Heroku说Using Ruby version: ruby-2.0.0 ,它检测到我的Ruby版本。 但是,当我运行$ heroku run rake db:migrateheroku run 'ruby -v'它返回:

 Your Ruby version is 1.9.2, but your Gemfile specified 2.0.0 

如何在Heroku上将Ruby版本更改为2.0.0?

结论:我注意到我的rails应用程序有.bash_profile文件,但路径错误。 路径扰乱了我的heroku路径为ruby版本。

谢谢大家的帮助:)

你执行了:在本地bundle update然后提交文件Gemfile.lock吗?

服务器正在使用Ruby 2,但如果未推送新的锁定文件,应用程序仍配置为使用旧版本。

查看正在运行的版本:

 $ heroku run console > RUBY_VERSION 

如果版本是正确的,您指定的版本,那么您有一个捆绑问题。 只需重新安装它。

 gem install bundler 

我推荐一个完整而干净的版本:

 bundle clean --force gem install bundler bundle install 

您正在使用Bundler版本1.3.2

确保升级到Bundler 2.0+版本

然后最后一次捆绑并将您的更改推送到Heroku

我希望有帮助..

这是一个充满希望的远景,但也许尝试运行heroku ps:restart并希望它拿起新的Ruby版本。