2014-02-20 42 views
0

我已經將我的一些常見功能移到了一個單獨的寶石上,並且一直在使用它。在生產中,我直接從包括寶石。定義當地的寶石

#common 
gem 'engine', path: '../engine' 
#gem 'engine', branch: 'master', git: 'source to engine.git' 

問題是,當我得到發展MOD我註釋掉的第二行和檢查之前將其恢復,這是一種有刺激性做每次我檢查的時間,我不能加作爲應用程序仍在開發中,我們一直在不斷修改此文件。

我想單獨對它們進行分組使用

group :development, :test do 
    gem 'engine', path: '../engine' 
group :production do 
    gem 'engine', branch: 'master', git: 'source to engine.git' 

但它拋出一個錯誤,說我不能定義兩次寶石。我不明白我在這裏做錯了什麼。

請幫我這個。

回答

1

這個gem在這兩個組中真的被定義了兩次,因爲Gemfile解析器無論如何都只是看到了一個組。嘗試關閉生產的珠寶環境在if條件:

group :development, :test do 
    if ENV[ 'RAILS_ENV' ] != 'production' 
     gem 'engine', path: '../engine' 
    end 
end 

group :production do 
    if ENV[ 'RAILS_ENV' ] == 'production' 
     gem 'engine', branch: 'master', git: 'source to engine.git' 
    end 
end