【问题标题】:Change Rails Console (IRB) Ruby Version OSX更改 Rails 控制台 (IRB) Ruby 版本 OSX
【发布时间】:2012-07-08 21:30:52
【问题描述】:

我在使用正确版本的 ruby​​ 运行 rails 控制台时遇到了一些问题。我想在 rails 控制台中使用 ruby​​ 1.9.3。

当我运行 RVM 列表时,我得到:

rvm rubies

ruby-1.9.3-p0 [ x86_64 ]
=* ruby-1.9.3-p194 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

当我运行 rbenv global 时,我得到:

 rbenv global                                                     
 1.9.3-p194

当我在本地运行 rbenv 时,我得到: rbenv: 没有为此目录配置本地版本

当我运行 ruby​​ -v 我得到:

 ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.3.0]

当我在“rails 控制台”中运行 RUBY_VERSION 时

 irb(main):001:0> RUBY_VERSION
 => "1.8.7"

当我运行 which ruby 时,我得到:

ruby: aliased to bundled_ruby

提前感谢您的帮助。

【问题讨论】:

  • 我认为两者都会导致问题。我建议删除两者,然后添加 rbenv (我的个人喜好)或 rvm 回来。然后从那里去。
  • 进入控制台前 ruby​​ -v 会显示什么?
  • 仍然得到相同的输出。可能是系统红宝石在 PATH 中获得优先权?
  • 系统 ruby​​ 肯定仍然在 PATH 中击败您的 ruby​​ 版本。系统版本为1.8.7。不过,你怎么能有ruby 而不是irb 很奇怪。
  • 您可以运行env 并粘贴结果以获取更多信息吗?

标签: ruby-on-rails ruby rvm irb rbenv


【解决方案1】:

看来您的 rbenv 实际上配置正确。只需运行which ruby 对其进行测试,您应该会看到/Users/USERNAME/.rbenv/shims/ruby。真正的问题是当您运行rails console 时。 rails 命令是 osx 自带的,你可能在 rbenv 中没有 shim。

在项目目录中尝试script/rails console

【讨论】:

  • 刚刚注意到它在我运行 script/rails console 时有效,但在我运行 rails console 时无效。这是为什么呢?
  • 是的,就像我想的那样。那么which rails 的输出是什么?我敢打赌它是/usr/bin/rails。试试gem install rails; rbenv rehash; which rails 看看是否有变化。