2012-07-30 53 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的行为。

相关问题