Rails没有使用我的全局Ruby版本

Den*_*nis 7 ruby ruby-on-rails rbenv ruby-on-rails-4

我想在Ruby 2.1.0中使用Rails,但它使用的是Ruby 1.9.3(系统版本).

我正在使用rbenv来管理我的Ruby版本.我的步骤是:

$ rbenv install 2.1.0
$ rbenv global 2.1.0
$ sudo gem install rails -v 4.0.2
$ rbenv rehash
$ rbenv versions
  system
* 2.1.0 (set by /home/dennis/.rbenv/version)
$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]
$ rails new app && cd app
$ rails server
Run Code Online (Sandbox Code Playgroud)

据Rails使用的是Ruby 1.9.3(x86_64-linux)localhost:3000/rails/info/properties.来自的一条日志消息rails server:INFO ruby 1.9.3 (2012-04-20) [x86_64-linux].

我认为Rails使用的是Ruby的系统版本,因为版本匹配.

$ rbenv local system
$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
$ rbenv local --unset  # Unset local Ruby version, go back to 2.1.0
Run Code Online (Sandbox Code Playgroud)

有些事情我试过没有运气:

  • 使用rbenv将Ruby的本地和shell版本设置为2.1.0
  • rehash rbenv shims(rbenv说安装可执行文件后执行此操作)
  • 切换到2.1.0之后制作了新的Rails项目,以防我在使用1.9.3时制作项目
  • 2.1.0.ruby-version我的项目的根目录中放入一个文件(由@Agis建议)
  • 重启终端会话并启动登录bash shell(由@Russel建议)
  • 在项目的Gemfile中指定所需的Ruby版本(由@ rlecaro2建议)

FWIW,我正在使用带有鱼壳的Ubuntu 13.10.

nil*_*nil 8

听起来很傻,但你重启终端会话了吗?

否则尝试输入

 /bin/bash --login
Run Code Online (Sandbox Code Playgroud)


iva*_*een 7

您没有告诉您如何安装rbenv,但我认为这是每用户安装(这是默认设置).在这种情况下,您应该安装gems而不使用sudo.当你这样做时sudo gem install rails,它安装在系统ruby中,而不是rbenv的选择.

解决方案 - 安装没有sudo的rails:

rbenv global 2.1.0
gem install rails
rbenv rehash
Run Code Online (Sandbox Code Playgroud)