web-dev-qa-db-fra.com

Rails bundler n'installe pas de gemmes à l'intérieur d'un groupe

J'ai plusieurs joyaux, y compris Ruby-debug dans un groupe de bundles appelé: développement. Lorsque j'exécute la commande bundle, ces gems sont ignorés et seuls les gems qui ne figurent dans aucun groupe sont installés. Comment puis-je m'assurer que le lieur n'ignore pas les gemmes du groupe de développement? 

Edit: Voici à quoi ressemble mon 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
51
picardo

Dans une session de session, il se souvient de l'option without. Si vous avez d'abord couru 

bundle install --without development 

il se souvient que vous l'avez fait et le répètera automatiquement pour le prochain 

bundle install #remembers and includes --without development

exécuter quelque chose d'autre, comme bundle install --without nothing devrait vider le cache. Ai-je raison?

update 20150214: Ceci est résolu dans le bundler 2.0, selon le problème mentionné dans le commentaire de @Stan Bondi ( https://github.com/bundler/bundler/issues/2862 ). Merci Stan.

128
oma

Si vous utilisez Rails, un fichier config sera écrit dans un répertoire caché appelé .bundle dans votre répertoire racine Rails:

.bundle/config

Dans mon cas, ce fichier contenait exactement les paramètres without.

Je viens donc de supprimer le répertoire .bundle:

rm .bundle -r

Après ça:

bundle install a fonctionné à nouveau comme prévu.

Using: bundler (1.5.2)
27
mahatmanich

J'ai eu le même problème et le drapeau --with a fonctionné pour moi. Vous devez transmettre le nom du groupe, que vous souhaitez inclure. Comme ça:

bundle install --with development
8
Vladislav Leonov
    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)

Plus

2
vijaya

En fait, Rails charge automatiquement le groupe :development dans l'environnement de développement. Vérifiez si Rails.env dans votre application renvoie réellement "development".

Plus d'informations sur les groupes dans Bundler: http://gembundler.com/groups.html

0
pex

J'avais un problème similaire - ma mise en scène était ignorée - et la solution consistait à l'éteindre si nous mettions en scène dans l'espace 'global':

gem 'thin'

group :production do
  gem 'puma'
end
0
maprihoda