【问题标题】:heroku app/vendor/bundle shows wrong version of rubyheroku app/vendor/bundle 显示错误的 ruby​​ 版本
【发布时间】:2014-10-22 22:59:09
【问题描述】:

我在生产中遇到了一个在开发中没有发生的错误。它出现在堆栈跟踪中,gem 使用了错误的 ruby​​ 版本(2.1.0),但我在我的 gemfile 中指定了 2.1.3 并按照 heroku 对 ruby​​ 版本进行故障排除。基于其他 stackoverflow 信息,ruby 版本在这里有所作为。有谁知道如何将 app/vendor/bundle 更新到最新版本?

这是我在 Resque 工作人员中发生的错误...

undefined method `name' for nil:NilClass
/app/vendor/bundle/ruby/2.1.0/gems/psych-2.0.6/lib/psych/visitors/yaml_tree.rb:72:in `block in initialize'
/app/vendor/bundle/ruby/2.1.0/gems/psych-2.0.6/lib/psych/visitors/yaml_tree.rb:74:in `yield'
/app/vendor/bundle/ruby/2.1.0/gems/psych-2.0.6/lib/psych/visitors/yaml_tree.rb:74:in `block in initialize'
/app/vendor/bundle/ruby/2.1.0/gems/psych-2.0.6/lib/psych/visitors/yaml_tree.rb:74:in `yield'
/app/vendor/bundle/ruby/2.1.0/gems/psych-2.0.6/lib/psych/visitors/yaml_tree.rb:74:in `block in initialize'
/app/vendor/bundle/ruby/2.1.0/gems/psych-2.0.6/lib/psych/visitors/yaml_tree.rb:74:in `yield'
/app/vendor/bundle/ruby/2.1.0/gems/psych-2.0.6/lib/psych/visitors/yaml_tree.rb:74:in `block in initialize'
/app/vendor/bundle/ruby/2.1.0/gems/psych-2.0.6/lib/psych/visitors/yaml_tree.rb:150:in `yield'
/app/vendor/bundle/ruby/2.1.0/gems/psych-2.0.6/lib/psych/visitors/yaml_tree.rb:150:in `accept'
/app/vendor/bundle/ruby/2.1.0/gems/psych-2.0.6/lib/psych/visitors/yaml_tree.rb:114:in `push'
/app/vendor/bundle/ruby/2.1.0/gems/psych-2.0.6/lib/psych.rb:409:in `dump'
...snip...

这是我的 ruby​​ 版本...

heroku run "ruby --version"
ruby 2.1.3p242 (2014-09-19 revision 47630) [x86_64-linux]

这是 /app/vendor/bundle 中的内容...

heroku run "ls /app/vendor/bundle/ruby"
2.1.0

这是我的 Gemfile ruby​​ 声明....

source 'https://rubygems.org'

group :default do
  # current stable (heroku needs this listed)
  ruby '2.1.3'
  gem 'rails', '4.1.1'
  gem 'redis' # queue mechanism

  gem 'resque', "~> 1.22.0", :require => "resque/server"
  gem 'resque_mailer' # mailer queue
  gem 'resque-scheduler' # job scheduler

  # postgres and database
  gem 'pg' # postgres
  gem 'activerecord-import' # bulk sql insert
  gem 'seed-fu', '~> 2.3' # db seed data

  # APIs
  gem 'bitly'
  gem 'feedjira' # RSS feeds
  gem 'fullcontact'
  gem 'httparty'# rest api client
  gem 'twilio-ruby' # SMS
  gem 'twitter'
  gem 'twitter-text' # convert twitter, links, hashtags and users
  gem 'yahoo-finance', require: 'yahoo_finance'

  # WEB....
  # Use unicorn as the app server
  gem 'unicorn'

  # javascript
  gem 'jquery-rails'
  gem 'uglifier', '>= 1.3.0' # compressor for js assets
  gem 'coffee-rails', '~> 4.0.0'

  # UI/CSS
  gem 'sass-rails', '~> 4.0.0'
  gem 'bootstrap-sass'
  gem 'jquery-ui-rails'
  gem 'jqcloud-rails' # word cloud
  gem 'footable-rails' # mobile responsive table
  gem 'font-awesome-sass'# icons
  gem 'highcharts-rails'

  # rails
  gem 'turbolinks'
  gem 'simple_form'

  # admin interface
  gem 'rails_admin' # models admin interface
  gem "psych", "~> 2.0.5" # needed for rails_admin

  # user authentication
  gem 'devise'
  gem 'domp'
  gem 'omniauth'
  gem 'omniauth-twitter'
  gem 'omniauth-stocktwits', :git => 'https://github.com/jesseyoungmann/omniauth-stocktwits.git'

  # app support
  gem 'bcrypt', '~> 3.1.2' # for active model secure password
  gem 'kaminari', :git => 'https://github.com/musicglue/kaminari.git' # pagination
end


# docs
group :doc do
  # bundle exec rake doc:rails generates the API under doc/api.
  gem 'sdoc', require: false
end


# test
group :test do
  gem "capybara"
  gem 'factory_girl_rails'
  gem 'faker'
  gem 'rspec-rails'
  gem 'selenium-webdriver'
  gem 'simplecov', :require => false
  gem 'vcr', '~> 2.8.0'
  gem 'webmock', '~> 1.15.0'
end

# development
group :development do
  gem 'foreigner', '~> 1.6.1' # foreign key generator
  gem 'rails_layout'

  # profilers
  gem 'rack-mini-profiler'
  gem 'ruby-prof'
end

group :production do
  gem 'newrelic_rpm'
  gem 'rails_12factor' # heroku
end

谢谢!

【问题讨论】:

标签: ruby-on-rails ruby heroku


【解决方案1】:

一个可能的解决方案是在应用程序的根目录中创建一个.ruby-version 文件,然后简单地将2.1.3 放入其中,这样您的应用程序将始终在生产和开发中使用该版本。过去我也遇到过类似的问题,这对我有用。

【讨论】:

  • 我也有 .ruby-version 文件,其中包含 rvm 2.1.3
【解决方案2】:

【讨论】:

  • 嗯...这似乎是一个令人困惑的约定,我想我的问题出在其他地方。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-27
  • 2021-11-15
  • 2022-01-11
  • 1970-01-01
  • 2019-06-01
  • 1970-01-01
相关资源
最近更新 更多