【问题标题】:How do I force Rails to use the version of Ruby (managed with rbenv) that I want?如何强制 Rails 使用我想要的 Ruby 版本(使用 rbenv 管理)?
【发布时间】:2011-10-05 09:16:57
【问题描述】:

我安装了 rbenv 和 ruby​​-build。然后我安装了 ruby​​ 1.9.2p290。一切看起来都很好。

$ cd my_rails_app
$ ruby -v
1.9.2p290
$ rails server
...
[2011-10-04 13:51:01] INFO  WEBrick 1.3.1
[2011-10-04 13:51:01] INFO  ruby 1.8.7 (2010-01-10) [universal-darwin11.0]
...

但是当我运行我的应用程序时,它仍在使用 ruby​​ 1.8.7。 (1.9 中存在的方法失败)。 rails/console 中的所有内容都类似于 1.8,而 IRB 中的所有内容都类似于 1.9。

如何强制我的应用使用 1.9?

我对 RVM 很熟悉,我特意问的是 rbenv。

【问题讨论】:

  • “当我运行我的应用程序时”是什么意思?你用的是什么应用服务器?
  • 我在本地运行它,使用 WEBrick。我在使用 rails/console 时也遇到了同样的问题。我更新了我的答案以显示引用 1.8.7 的特定服务器输出
  • 那些脚本引用/usr/bin/env/usr/bin/env ruby -v 告诉你什么?
  • /usr/bin/env ruby -v -> ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.1.0]

标签: ruby-on-rails ruby


【解决方案1】:

您是否使用bundle install 安装了 Rails?如果是这样,请注意 Bundler 不会将可执行文件添加到 Ruby 的可执行目录中。

改为使用 binstubs 或 bundle exec (documentation):

bundle exec rails server

如果您没有使用 Bundler 安装 Rails,您可能应该执行rbenv rehash 来更新可执行垫片。然后rails server 应该可以正常工作。但是,这只有在 Rails 直接与 Rubygems 一起安装时才有效,因此这是一种不可靠的调用 Rails 的方式。

【讨论】:

  • WebRick 刚从 1.8.7 开始!这对我有用。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 2014-12-10
  • 1970-01-01
  • 2021-10-13
  • 2018-10-22
相关资源
最近更新 更多