你如何使用rbenv的多个rails版本?

aci*_*lio 28 ruby-on-rails rbenv

是否可以使用rbenv使用多个版本的rails(例如2.3和3.1)?在rvm中使用gemsets很容易,但是我想知道现在最好的方法就是切换到rbenv(同样,我正在寻找一种没有rbenv-gemset的方法).

Nat*_*han 54

不确定你是否得到了答案,但我认为我会提供我做的,它似乎工作.

因此,一旦安装了rbenv,并使用它来安装特定的ruby版本,就可以为该ruby安装多个版本的rails.

步骤1.根据ruby版本安装所需的任何版本的导轨

% RBENV_VERSION=1.9.2-p290 rbenv exec gem install rails --version 3.0.11
Run Code Online (Sandbox Code Playgroud)

通过在命令行中使用"RBENV_VERSION = 1.9.2-p290"前缀,您可以指定应该关注哪个ruby rbenv.

然后使用"rbenv exec"命令,您可以安装rails.只需使用示例中的版本标志来指定所需的版本.不确定你是否可以一次安装多个版本,但我只是根据需要多次运行此命令来安装我想要的每个版本.

注意:这将全部在您的rbenv目录中进行管理,因此它非常安全且包含在内.

步骤2.通过指定所需的rails版本来构建新的rails项目.

% RBENV_VERSION=1.9.2-p290 rbenv exec rails _3.0.11_ new my_project
Run Code Online (Sandbox Code Playgroud)

步骤3.不要忘记进入该项目并设置本地rbenv ruby​​版本.

% cd my_project
% rbenv local 1.9.2-p290
Run Code Online (Sandbox Code Playgroud)

现在,如果要删除此项目,只需将其删除即可.

如果要从rbenv gems删除/管理rails版本,可以使用常规gem命令,只需在命令行前加上:

% RBENV_VERSION=1.9.2-p290 rbenv exec gem {some command}
Run Code Online (Sandbox Code Playgroud)

当然,你可以很容易地删除一个完整的ruby版本及其在rbenv中管理的所有垫片等.我喜欢自包含的一切.

希望这可以帮助.

作为参考,这是至少一些这些东西的一个非常好的步骤:

http://ascarter.net/2011/09/25/modern-ruby-development.html


Mic*_*nek 22

有一个名为rbenv-gemset的rbenv插件应该与rvm gemset-command 类似,但由于rbenv从未打算以这种方式工作,我还没有尝试过.

我通常使用Bundler管理Rails版本,正如Nathan在其他一个答案的评论中所建议的那样.我使用我想要的Rails版本创建一个Gemfile,运行bundle install,创建Rails应用程序,让它替换Gemfile并让Bundler接管:

mkdir my-rails-app
cd my-rails-app
echo "source 'https://rubygems.org'" > Gemfile
echo "gem 'rails', '3.2.17'" >> Gemfile
bundle install

bundle exec rails new . --force --skip-bundle
bundle update
Run Code Online (Sandbox Code Playgroud)

如果你想要更多细节,我在博客上了一篇关于它的文章.

希望能帮助到你!

  • 这就是我正在寻找的解决方案+1 (2认同)