我最近创建了一个新的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?
答案 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_2
。 cd
退出目录并返回,它会提示您询问您是否信任.rvmrc
文件。默认情况下,它只会在第一时间问你。
修改强>
请务必注意,在创建新.rvmrc
时,您需要在所有开放终端会话(包括cd
和rails s
的项目目录中rails console
)。否则,该应用将继续使用project_1
中的gemset。