2011-03-16 5 views
14
conditionals

je ces groupes dans mon Gemfile:Comment utiliser dans Gemfile

group :development, :test do 
    gem 'sqlite3' 
end 
group :production do 
    gem 'mysql' 
end 

La machine de développement n'a pas installé MySQL, ce qui est pourquoi je n'ai énuméré MySQL dans le groupe de production. Mais quand je tente d'exécuter Rails sur la machine de développement, je reçois ceci:

$> RAILS_ENV=development ./script/rails 
Could not find gem 'mysql (>= 0, runtime)' in any of the gem sources listed in your Gemfile. 

Il est évident que je pourrais résoudre ce problème en installant MySQL, mais je voudrais savoir la solution correcte au lieu d'installer des logiciels inutiles.

Répondre

5

Vous devez installer la gemme. Bundler (le gestionnaire de gem sous-jacent pour Rails) l'exige afin que vous puissiez résoudre les conflits potentiels de dépendances dans le développement plutôt que de découvrir que vous avez des conflits de gemme lorsque vous passez à la production. Yehuda (constructeur de Bundler) a écrit un article de blog à ce sujet, regardez dans la section intitulée «Consistance».

http://yehudakatz.com/2010/05/09/the-how-and-why-of-bundler-groups/

2

avez-vous exécutez à nouveau "paquet installer" après avoir changé votre Gemfile?

1

Exécutez simplement bundle install --without production