使用RVM Gemsets&Bundler和RubyMine

Ale*_*eev 6 ruby-on-rails bundler rvm gemset

我使用RVM来管理Ruby版本.
在我的项目中,我使用Bundler来管理项目的宝石.

RVM也有gemsets.
gemset中的Gem与Bundler的gem没有关联.←这是对的吗?
我得出了这个结论,因为存储在不同位置的gem文件:
RVM gemset:~/.rvm/gems/ruby-2.0.0-p247@myApp
Bundler:[my_app_dir]/vendor/bundle/gems
所以app使用Bundler gems,而不是RVM gemset gems.

但是当我向我的Gemfile添加gem时,RubyMine IDE向我显示警告,这个gem不在RVM gemset中.所以我也将这个gem添加到RVM gemset(只是为了摆脱这个警告).

所以问题是:

  1. 有没有什么好的理由在两个地方添加宝石(RVM Gemset和Gemfile)?
  2. 如果没有,那么为什么RubyMine警告我这个?

Ada*_*man 7

  1. 有没有什么好的理由在两个地方添加宝石(RVM Gemset和Gemfile)?

gemset是偶然的,Gemfile绝对是声明依赖项的地方.存储这些宝石的地方取决于您.

听起来Bundler被配置为将它们存储在项目本地路径中,但是您希望它们位于gemset中.Bundler通过bundle install --path vendor/bundle/gems在某个时刻运行来获得该配置.它将该配置存储在其项目配置文件中project_dir/.bundle/config:

BUNDLE_PATH: vendor/bundle/gems
Run Code Online (Sandbox Code Playgroud)

我对Rubymine不熟悉,但是如果你使用Bundler(即bundle exec rails server)运行Rails服务器,你可以忽略该警告.Bundler将正确加载Gemfile中列出的gem.

如果要使用gemset 而不是 Bundler缓存,只需从Bundler配置文件中删除该行,然后重新安装bundle install.

  1. 如果没有,那么为什么RubyMine警告我这个?

我的猜测是Rubymine没有读取Bundler项目配置(in project_path/.bundle/config),也不知道gems的安装位置.