为什么我在当前项目中看到另一个项目的参考



我最近创建了一个新的Rails项目,我相信在生成应用程序之前,我已经为它创建了gemset。

但当我遇到错误时,我会收到这样的消息:

File /.rvm/gems/ruby-1.9.3-p194@project_1/gems/activerecord-3.2.8/lib/active_record/relation/finder_methods.rb

尽管我在project_2。所以理论上应该是ruby-1.9.3-p194@project_2而不是project_1

造成这种情况的原因是什么?我该如何解决?

谢谢。

附言:我正在使用RVM。

编辑1:

我运行了rvm gemset list,这是输出:

project_2$ rvm gemset list
gemsets for ruby-1.9.3-p194 (found in /Users/marcamillion/.rvm/gems/ruby-1.9.3-p194)
project_1
=> project_2
project_3

编辑2:

我只是在project_2目录中运行了gem install rails,在我为该项目创建了.rvmrc文件之后,我验证了它确实专门为该项目使用了gemset。然而,当我再次生成错误时,我仍然看到project_1中对gemset的引用。

编辑3:

rvm current:的输出

$ rvm current
ruby-1.9.3-p194@project_2

编辑4:

尽管如此,当我在与rails s相同的终端窗口中运行rvm current时,我会看到:

$ rvm current
ruby-1.9.3-p194@project_1

那么,我现在和将来如何在所有终端窗口中设置宝石集呢?

您需要告诉RVM要使用哪个gemset。试试这个:

rvm gemset use project_2

如果有效,那么您可能希望在project_2的根目录中创建一个.rvmrc文件,以便在您进入目录时自动切换到该gemset:

cd /path/to/project_2
rvm --rvmrc --create 1.9.3@project_2

这将在/path/to/project_2中创建一个.rvmrccd从目录中取出并返回,它会提示您是否信任.rvmrc文件。默认情况下,它只会在第一次询问您。

编辑:

需要注意的是,在创建新的.rvmrc时,需要在所有打开的终端会话(包括rails srails console)中从项目目录中cd。否则,应用程序将继续使用project_1中的gemset。

相关内容

  • 没有找到相关文章

最新更新