如何将RVM绑定到目录/项目

时间:2011-05-16 12:14:48

标签: ruby-on-rails rvm

我在工作时使用rvm和rails,当我进入项目目录时,它会自动设置gemset。我记得第一次进入该目录时,我被问到是否要使用指定的gemset,当然我同意了,从那时起它就被设置了。这是我的意思的一个例子:

-( codemonkey )-(~/maintenance)-
-(0)> go
/home/webpath/maintenance
Using /home/webpath/.rvm/gems/ruby-1.9.2-p136 with gemset webpath
-( codemonkey )-(~/maintenance)-
-(0)>

现在,我一直在“练习”安装和设置RVM&家里的Rails让我可以在睡梦中做到(如果我转到另一个RoR工作并想要使用RVM),但对于我的生活我无法得到上述行为。我必须进入项目目录然后:

-( me )-(~/project)-
-(0)> rvm use 1.9.2@myproject

在有人打败我之前,最初让我们进入RVM的那个人离开了公司而我正试图填补他留下的空白,但这有点太糟糕了。我无法弄明白。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

要将特定Ruby绑定到目录,请将.rvmrc文件放入该目录。然后,您可以按如下方式选择ruby版本和gemset。

rvm use 1.9.2@myproject

离开目录然后重新输入,您将被要求按照问题中的描述确认RVM选择。

完整文档:http://beginrescueend.com/workflow/rvmrc/

答案 1 :(得分:2)

它不记得目录上最后一个使用的集合,它是从该目录中的.rvmrc文件加载gemset

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

答案 2 :(得分:0)

这是一个更好的方法来获取.rvmrc文件(来自我的一个项目):

if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
  && -s "${rvm_path:-$HOME/.rvm}/environments/ruby-1.8.6-p399@elearning" ]] ; then
  \. "${rvm_path:-$HOME/.rvm}/environments/ruby-1.8.6-p399@elearning"
else
  rvm --create  "ruby-1.8.6-p399@elearning"
fi

这将创建gemset(如果它尚不存在),然后切换到它。它看起来很复杂,但实际上rvm会为你设置的内容,如果你要求它在你创建一个新的gemset时为你创建一个.rvmrc文件:

rvm --create --rvmrc 1.8.6@project