ruby-on-rails - 为什么 rails server Welcome Aboard 站点向 rbenv 报告不同的 ruby​​ 版本?

标签 ruby-on-rails ruby ruby-on-rails-4 rbenv multiple-versions

我在 Debian 上使用 rbenv。 Debian 预装了 ruby​​ 1.9.3。我安装了 rbenv 并用它来安装 ruby​​ 2.1.2。然后,我使用 rails new 制作了一个全新的 Rails 应用程序。

rbenv 版本

给予

system
* 2.1.2 (set by /home/jordanmorris/code/TestRail/.ruby-version)

rbenv global 给出 2.1.2
rbenv local(在新的应用程序文件夹中)给出 2.1.2
ruby -v 给出 2.1.2
which ruby​​ 给出 /home/jordanmorris/.rbenv/shims/ruby

但是,当我使用rails server (node.js) 时,查看'Welcome aboard site' 并单击“About your application's environment”,它报告:
Ruby 版本 1.9.3-p484 (x86_64-linux)

为什么这没有按预期显示使用 rbenv 设置的版本,这是否值得关注?

我只安装了一个版本的 rails,afaik,它报告正确 (4.1.4)。

最佳答案

This答案对我有帮助。

问题是我使用 sudo 安装了 rails。

rbenv 以每个用户为基础运行。因此,rbenv install 为 jordanmorris 安装了 ruby​​ 2.1.2,而 sudo gem install rails 使用为 root (1.9.3) 安装的唯一版本的 ruby​​/gem 安装了 rails。

之后,每次我运行 rbenvruby 时,它们都使用由 rbenv 确定的预期 rails 版本,但每次我运行 rails newrails server,它将使用安装在 ruby​​ 1.9.3 之上的 rails,这是现有的唯一 rails 实例。

我按照以下步骤修复它:

  1. 卸载 rails 及其依赖项(只是因为我喜欢保持整洁的房子)。
  2. 在不使用 sudo 的情况下安装 rails 及其依赖项。
  3. 运行rbenv rehash
  4. 重新生成一个新应用程序 (rails new)。

现在,正确的版本显示在“欢迎加入”->“关于您的应用程序的环境”页面中。

另请注意,rails new 命令将创建一个使用 spring 的应用程序。考虑安装 rbenv-binstubs避免 stub 与 rbenv 冲突。

关于ruby-on-rails - 为什么 rails server Welcome Aboard 站点向 rbenv 报告不同的 ruby​​ 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28320419/

相关文章:

java - Ruby(服务器)- Java(客户端)连接错误

ruby-on-rails - rails : Update data via link_to (without view)

ruby-on-rails - Rails sql 查询缓存命中数据库吗?

ruby - 无法使用 RVM-Capistrano 安装任何 ruby

ruby-on-rails - 转推功能使用什么关系?

ruby-on-rails - Rails on ruby​​/jruby 性能

ruby-on-rails - Rails has_and_belongs_to_many ActiveRecord::UnknownPrimaryKey

ruby-on-rails - Rails 自动将查询字符串参数转换为整数

ruby-on-rails - tinymce 图片上传后服务器响应错误

ruby-on-rails - rails 中的模式匹配( "where column LIKE ' %foo%")与 Postgres