2012-07-30 46 views
3

我的Gemfile似乎正在加載兩次。當我運行捆綁安裝,我看到了Gemfile正在加載兩次。爲什麼?我該如何阻止它?

的Gemfile:

source 'http://rubygems.org' 


gem 'haml'     # asset engine 
gem 'jquery-rails' 
gem 'rails',     '= 3.1.1' 
gem 'readable_exceptions' 
gem 'sass-rails',    "= 3.1.4" # asset engine 
gem 'uglifier'    # asset engine 
gem 'bundler',    ">= 1.0.18" # 1.0.18 is required for proper asset pipeline support 
gem "rake", "=0.8.7" 
gem "resque" 
gem 'date_validator' 
gem "typhoeus" 
gem 'newrelic_rpm' 
gem "scout_rails" 
puts "Loading Gemfile" 

輸出:在我的開發環境中,一切都被加載兩次

Loading Gemfile 
Loading Gemfile 
Using rake (0.8.7) 
Using multi_json (1.3.6) 
Using activesupport (3.1.1) 

我相信這是造成問題。當我運行我的服務器與乘客獨立的,我有奇怪的日誌,如:

development.log:

/app/models/facebook_application.rb:47: warning: already initialized constant APP_PROPERTIES 
/app/models/facebook_application.rb:59: warning: already initialized constant ADJUSTABLE_MIGRATIONS 
/app/models/facebook_application.rb:210: warning: already initialized constant MAX_TRIES 

什麼樣的系統問題,可能會導致被加載兩次一切嗎?

我:使用

  • RVM
  • 我已經刪除了使用捆綁
  • 所有系統紅寶石寶石
  • 我還沒有使用寶石
  • 使用刪除.rvmrc文件
  • ruby-1.9.2-p320
  • 使用導軌3.1.1

回答

2

也許我失去了一些東西,但它看起來像有一個線後 寶石「童子軍軌」 它說 放「正在加載的Gemfile」

所以,也許這並不是說你裝你的Gemfile兩次(這實際上不會成爲一個問題,因爲我們可以整天捆綁安裝,而不會有任何事情中斷),但它看起來像你的,因爲你在說一行。

+0

在gemfile中使用'puts'只是做它所說的,它在終端輸出字符串......它不要求重新加載Gemfile,這將是一個無限循環...... – 2013-06-08 13:16:00

0

這就是Bundler如何完成他的工作。它執行一些檢查以滿足現有的依賴關係。 Bundler在其自己的DSL中運行Gemfile以獲得依賴關係的樹。

在Ruby級別禁止雙重需求:第一個require加載文件,下一個調用返回false,表明該文件已經在派對上,不需要再次加載。所以我懷疑Bundler可能會導致你的錯誤。

順便說一句,您不必使用bundle execrails命令。 Rails核心團隊成員解釋here爲什麼。

順便說一下#2:install是默認的bundle的行爲。

相關問題