为什么我在当前项目中看到对另一个项目的gemset的引用?

时间:2012-12-13 22:08:29

标签: ruby-on-rails ruby ruby-on-rails-3 rvm gemset

我最近创建了一个新的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

可能导致此问题的原因以及如何解决?

感谢。

P.S。我正在使用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:

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

编辑3:

rvm current的输出:

$ rvm current
ruby-1.9.3-p194@project_2

编辑4:

虽然,当我在与rvm current相同的终端窗口中运行rails s时,我看到了:

$ rvm current
ruby-1.9.3-p194@project_1

那么我现在如何以及将来在所有终端窗口中设置gemset?

1 个答案:

答案 0 :(得分:2)

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

rvm gemset use project_2

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

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

这将在.rvmrc中创建/path/to/project_2cd退出目录并返回,它会提示您询问您是否信任.rvmrc文件。默认情况下,它只会在第一时间问你。

修改

请务必注意,在创建新.rvmrc时,您需要在所有开放终端会话(包括cdrails s的项目目录中rails console )。否则,该应用将继续使用project_1中的gemset。