【问题标题】:Using specified version of rails when starting?启动时使用指定版本的rails?
【发布时间】:2013-11-09 11:57:13
【问题描述】:

我安装了多个版本的 rails。但是当我用“rails s”启动服务器时,它总是使用最新的。有没有办法指定应该使用的 rails 版本(以及所有依赖的 gem)? (我将如何在乘客中指定?) 是的,我可以使用 RVM 或类似的 - 但我想避免这种情况。

提前致谢!

【问题讨论】:

  • 我认为这仍然有效?请参阅stackoverflow.com/questions/6148308/… - rails _3.2.15_ server - 我相信乘客会使用 Gemfile 中指定的版本,因此在这种情况下不需要这样做?

标签: ruby-on-rails passenger


【解决方案1】:

Phusion 乘客作者在这里。

加载的 Rails 版本不依赖于'rails server',也不依赖于Passenger。 RVM 也与此无关。

它只取决于您的 Gemfile.lock,它会锁定项目中的所有 gem 版本。如果你想要不同版本的 Rails,你需要修改你的 Gemfile 以指定确切的版本,然后运行 ​​bundle install 来更新 Gemfile.lock。

【讨论】:

  • 含义:如果我所有的应用程序都使用相同的 Ruby 版本,那么就不需要 RVM 或 silimar 解决方案了吗?那么有可能在 RVM 中创建不同的 gemset 的目的是什么?
  • 正确。 RVM gemset 机制存在是因为它早于 Bundler。现在你应该使用 Bundler 而不是 gemsets。在这里查看我的评论:reddit.com/r/ruby/comments/1nvujm/…
  • @Hongli 这正是我的答案 ;)
【解决方案2】:

你不能用 rails server 命令来做到这一点。每个项目都依赖于 GemFile。但是您可以创建一个 bash 脚本,将自定义指定 GemFile 移动到默认 GemFile,然后启动服务器。

vi /script/rails4_to_rails3
#/bin/bash
mv /opt/web/my_app/GemFile /opt/web/my_app/GemFile.rails4
cp /script/GemFile.rails3 /opt/web/my_app/GemFile
bundle install
rails s

我不是乘客专家,但在我看来这是不可能的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    • 1970-01-01
    • 2014-04-28
    • 2010-09-27
    • 1970-01-01
    相关资源
    最近更新 更多