0

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

这可能是什么原因造成的,我该如何解决?

谢谢。

PS我正在使用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:

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

编辑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?

4

1 回答 1

2

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

rvm gemset use project_2

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

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

这将创建一个.rvmrcin /path/to/project_2cd退出目录并重新进入,它会提示您询问您是否信任该.rvmrc文件。默认情况下,它只会在第一次询问您。

编辑:

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

于 2012-12-13T22:15:54.803 回答