gpt4 book ai didi

ruby-on-rails - Rails 没有使用正确版本的 Ruby

转载 作者:太空宇宙 更新时间:2023-11-03 16:44:03 26 4
gpt4 key购买 nike

新信息

这是 rails console 发生的情况:

Loading development environment (Rails 3.1.1)
ruby-1.9.2-p290 :001 > RUBY_VERSION
=> "1.8.7"

这里发生了一些非常奇怪的事情 - 提示显示 1.9.2RUBY_VERSION 显示 1.8.7


我正在使用 RVM,但在 Ubuntu 上使用 Rails 时遇到问题。

$ which ruby
/home/nick/.rvm/rubies/ruby-1.9.2-p290/bin/ruby

$rvm list
rvm rubies
=> ruby-1.9.2-p290 [ i686 ]

但是如果我执行 gem env 我会得到

RubyGems Environment:
- RUBYGEMS VERSION: 1.8.11
- RUBY VERSION: 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]
- INSTALLATION DIRECTORY: /home/nick/.rvm/gems/ruby-1.9.2-p290
- RUBY EXECUTABLE: /usr/bin/ruby1.8
- EXECUTABLE DIRECTORY: /home/nick/.rvm/gems/ruby-1.9.2-p290/bin

当我运行 Rails 时,如果我执行 puts RUBY_VERSION,它会输出 1.8.7

事实上,在 irb 中,RUBY_VERSION 给出了 1.9.2 但在 rails console 中它给出了 1.8.7.

主要问题是它在获取我的 JSON 样式哈希文字时失败了。

我尝试了各种卸载 rvm、rails、bundler 等的方法,但似乎没有任何效果。有什么想法吗?

编辑:

这是 rvm info 的输出:

ruby-1.9.2-p290:

system:
uname: "Linux ubie 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:50:42 UTC 2011 i686 i686 i386 GNU/Linux"
bash: "/bin/bash => GNU bash, version 4.2.10(1)-release (i686-pc-linux-gnu)"
zsh: " => not installed"

rvm:
version: "rvm 1.8.6 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]"

ruby:
interpreter: "ruby"
version: "1.9.2p290"
date: "2011-07-09"
platform: "i686-linux"
patchlevel: "2011-07-09 revision 32553"
full_version: "ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]"

homes:
gem: "/home/nick/.rvm/gems/ruby-1.9.2-p290"
ruby: "/home/nick/.rvm/rubies/ruby-1.9.2-p290"

binaries:
ruby: "/home/nick/.rvm/rubies/ruby-1.9.2-p290/bin/ruby"
irb: "/home/nick/.rvm/rubies/ruby-1.9.2-p290/bin/irb"
gem: "/home/nick/.rvm/rubies/ruby-1.9.2-p290/bin/gem"
rake: "/home/nick/.rvm/gems/ruby-1.9.2-p290/bin/rake"

environment:
PATH: "/home/nick/.rvm/gems/ruby-1.9.2-p290/bin:/home/nick/.rvm/gems/ruby-1.9.2-p290@global/bin:/home/nick/.rvm/rubies/ruby-1.9.2-p290/bin:/home/nick/.rvm/bin:/home/nick/local/node/bin:/home/nick/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
GEM_HOME: "/home/nick/.rvm/gems/ruby-1.9.2-p290"
GEM_PATH: "/home/nick/.rvm/gems/ruby-1.9.2-p290:/home/nick/.rvm/gems/ruby-1.9.2-p290@global"
MY_RUBY_HOME: "/home/nick/.rvm/rubies/ruby-1.9.2-p290"
IRBRC: "/home/nick/.rvm/rubies/ruby-1.9.2-p290/.irbrc"
RUBYOPT: ""
gemset: ""

gem env 仍然告诉我,在 RubyGems 环境中,Ruby 版本是 1.8.7。我就是不明白。

最佳答案

你应该像这样设置默认的 ruby :

rvm use 1.9.2 --default

这将用 rvm one 覆盖系统安装的 ruby​​。

更新:

notme,谢谢你的评论

默认前的前导双连字符对于设置默认 ruby​​ 很重要。

下面列出了详细且不言自明的示例,请欣赏:

$ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-linux]

$rvm list
rvm rubies

ruby-1.9.2-p290 [ i386 ]

$rvm use 1.9.2 --default
Using /usr/local/rvm/gems/ruby-1.9.2-p290

$rvm list default

Default Ruby (for new shells)

ruby-1.9.2-p290 [ i386 ]

$rvm use default
Using /usr/local/rvm/gems/ruby-1.9.2-p290

$ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]

$rvm list

rvm rubies

=> ruby-1.9.2-p290 [ i386 ]

关于ruby-on-rails - Rails 没有使用正确版本的 Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7777235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com