您的Ruby版本是1.9.3,但您的Gemfile指定为2.1.0

时间:2014-01-11 09:35:47

标签: ruby-on-rails rvm

当我跑步时

rails server

我收到了错误。

加载gemsets时存在一些问题

$rvm list
rvm rubies
ruby-1.9.3-p484 [ i686 ]
ruby-2.0.0-p353 [ i686 ]
=* ruby-2.1.0 [ i686 ]
# => - current
# =* - current && default
#  * - default

$ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [i686-linux]

$rails -v
Your Ruby version is 1.9.3, but your Gemfile specified 2.1.0

$bundle show rails
/home/prasad/.rvm/gems/ruby-2.1.0/gems/rails-4.0.1

$bundle exec rails s
Your Ruby version is 1.9.3, but your Gemfile specified 2.1.0

bundle exec ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [i686-linux]

我做了bundle install并试图启动rails服务器,但它给出了同样的错误。

bashrc中

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

的Gemfile

source 'https://rubygems.org'
ruby '2.1.0'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.1'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '2.3.1'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# Use jquery as the JavaScript library
gem 'jquery-rails', '3.0.4'
gem 'haml', '4.0.4'
gem 'actionpack-page_caching', '1.0.2' #use caches_pages in rails 4
gem 'twitter'
gem 'mina'
group :production do
  gem 'dalli', '2.6.4'
  gem 'therubyracer'
end
group :test do
  gem 'watir-rails'
end
group :staging do
  gem 'rails_12factor'
end
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 1.2'
group :doc do
  # bundle exec rake doc:rails generates the API under doc/api.
  gem 'sdoc', require: false
end

更新

我尝试重新启动计算机,但它没有解决问题。

3 个答案:

答案 0 :(得分:7)

问题在于您的PATH环境变量,它必须与GEM_PATH匹配,而在您的情况下则不然。要修复它,请运行:

rvm get stable --auto-dotfiles

这将更新您的shell初始化文件并确保正确加载rvm。然后打开一个新终端(关闭应用程序并再次打开它),然后运行:

rvm use 2.1.0

在这两个步骤中,阅读打印给您的所有消息。它们很重要,包含有关如何解决问题的信息。如果不能或不应该自动修复RVM,RVM会检测到问题并尝试修复它们或向您发出警告。

答案 1 :(得分:3)

我有一个类似的问题,并使用@mpapis建议,修复我的$PATH和rvm加载。

但是我必须运行gem install bundler来更新bundler并让它再次识别我当前的ruby版本。

答案 2 :(得分:0)

我建议在项目的顶级目录中使用.ruby-version文件。该文件将包含您Gemfile中指定的ruby版本,例如

2.1.0

这显然是现在规范版本的交叉{rbenv,rvm}方式。