2

当我 cd 进入我的 rails 项目目录时,rvm 会切换 gemsets 的可能原因是什么?

我没有 .rvmrc 文件。我设置了一个默认 gemset(它“粘”在其他目录中)。这就是我的意思:

[20130109_234306] will@localhost:~
$ rvm gemset list

gemsets for ruby-1.9.3-p362 (found in /Users/will/.rvm/gems/ruby-1.9.3-p362)
   (default)
   global
=> ruby-1.9.3

[20130109_234313] will@localhost:~
$ cd Projects/rails_project

[20130109_234320] will@localhost:~/Projects/rails_project
$ rvm gemset list

gemsets for ruby-1.9.3-p362 (found in /Users/will/.rvm/gems/ruby-1.9.3-p362)
=> (default)
   global
   ruby-1.9.3
4

4 回答 4

5

如果 Gemfile 指定了 ruby​​ 版本(例如 ruby​​="1.9.3" 或 #ruby=1.9.3@gemset),rails 项目目录中的 Gemfile 将告诉 RVM 切换 rubies。

这是因为 RVM 支持的不仅仅是.rvmrc=> https://rvm.io/workflow/projects/#ruby-versions可以在此处找到完整列表:https ://github.com/wayneeseguin/rvm/blob/master/脚本/函数/rvmrc#L743-L744

请注意,RVM 将在 Gemfile之前.rvmrc .versions.conf .ruby-version .rbfu-version .rbenv-version检查以下文件: . 因此,创建.rvmrc带有“”行的文件rvm use ruby-1.9.3-p362@ruby-1.9.3会使 RVM 忽略 Gemfile。

于 2013-01-10T09:12:30.967 回答
1

RVM 有一个名为Project .rvmrc的功能。其中~/Projects/rails_project有一个名为 的文件.rvmrc,其中包含有关 RVM 的说明,以便您进入该项目。

编辑:我错过了有关您没有该文件的信息。对不起。

于 2013-01-10T08:07:31.637 回答
1

您可以禁用项目 .rvmrc,它也会禁用项目 Gemfile 检查。为此,将以下行添加到/etc/rvmrcor ~/.rvmrc。然后您不必将 .rvmrc 文件添加到任何项目,因为 Gemfile 将忽略它们。这是在 rvm 上测试的1.19.6 (Stable)

rvm_project_rvmrc=0

来源:https ://rvm.io/workflow/rvmrc

于 2013-08-13T20:20:52.973 回答
0

至少有两种方法可以实现这一点,例如:</p>

  1. echo 2.1.1 > .ruby-versionecho rails4 > .ruby-gemset

  2. 将第一行添加 #ruby=2.1.1@rails4到 Gemfile

为什么.ruby-gemset

.ruby-version也支持 gemsets 的形式,ruby@gemset但这与其他 Ruby 版本管理器不兼容。另一个文件可用于指定 gemset 而不会破坏兼容性 - .ruby-gemset.

我认为以上是最佳实践。

于 2014-10-10T05:51:20.127 回答