2011-03-16 20 views
14

我有這些團體在我的Gemfile:如何使用條件中的Gemfile

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

開發機沒有安裝的MySQL,這就是爲什麼我只生產組中列出的MySQL。但是,當我嘗試在開發機器上運行Rails,我得到這樣的:

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

很明顯,我可以通過安裝MySQL解決這個問題,但我想知道正確的解決方案,而不是安裝不需要的軟件。

回答

5

您確實需要安裝gem。 Bundler(Rails的底層gem manager)需要它,所以你可以在開發時解決潛在的依賴關係衝突,而不是在你進入生產階段時發現你有寶石衝突。 Yehuda(Bundler的建造者)在其上寫了一篇博客文章,在標題爲「一致性」的章節中進行介紹。

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

2

做你重新 「捆綁安裝」 改變你的Gemfile之後?

1

只需運行bundle install --without production