Rails打包器不会在组中安装gem

我有几个gem,包括ruby-debug在一个叫做:development的捆绑器组中。 当我运行捆绑命令时,这些gem被忽略,它只安装不在任何组中的gem。 我如何确保bundler不会忽略开发组中的gem?

编辑:这是我的Gemfile的样子。

source 'http://rubygems.org' gem 'rails', '3.0.1' # Auth gems gem "devise", "1.1.3" gem "omniauth" # Bundle Mongoid gems gem "mongoid", "2.0.0.beta.19" gem "bson_ext" # Asset gems gem 'jquery-rails' gem "jammit" # Controller gems gem 'inherited_resources', '1.1.2' # View gems gem 'haml' gem 'formtastic', '~> 1.1.0' # Nokogiri gem "mechanize" gem "json" group :development do gem "ruby-debug" gem 'compass' gem 'compass-colors' gem 'pickler' gem 'haml-rails' gem 'rails3-generators' gem "hpricot" gem "ruby_parser" gem 'fog' end 

在一个任期内,它记住了withoutselect权。 如果你第一次跑

 bundle install --without development 

它记得你做到了这一点,并会自动重复下一步

 bundle install #remembers and includes --without development 

运行别的东西,比如bundle install --without nothing应该清除caching。 我对吗?

更新20150214:根据@Stan Bondi( https://github.com/bundler/bundler/issues/2862 )的评论中引用的问题,这在捆绑软件2.0中得到修复。 谢谢Stan。

如果您使用的是rails,则会在您的rails根目录中将一个文件config写入一个名为.bundle的隐藏目录中:

 .bundle/config 

这个文件,在我的情况下,完全without设置。

所以我刚刚删除了.bundle目录:

 rm .bundle -r 

之后:

bundle install再次按预期工作。

 Using: bundler (1.5.2) 

我有同样的问题,并与国旗为我工作。 你需要传递你想要包含的组名。 像那样:

 bundle install --with development 
  gem 'aws-s3' gem 'paperclip' group :test do gem 'rspec' gem 'waitr' gem 'faker' end gem 'rest-client', :group => :development gem 'cucuber-rails', :groups => [:development,:test] (cucuber-rails gems comes under both group) bundle install --without development #(ignore development group gems) bundle install #(still bundle remembers --without development so result is still ignore development groups it will not install all gems) bundle install --without nothing #(just clearing cache, now all the gems to be loaded into the ruby loadpath) 

更多

我有一个类似的问题 – 在分级中被忽视 – 解决办法是把它放到“全局”空间中:

 gem 'thin' group :production do gem 'puma' end 

事实上,Rails在开发环境中自动加载:development组。 检查你的App中的Rails.env是否真的返回"development"

有关Bundler中的群组的更多信息: http : //gembundler.com/groups.html