Unicorn在资产预编译期间触发mongoid错误

我有一个使用在Heroku上运行的Mongoid 3的rails应用程序。 我刚刚更新它以使用Unicorn。 当我尝试将其部署到Heroku时,我收到以下错误:

Running: rake assets:precompile rake aborted! undefined method `match' for nil:NilClass /tmp/build_3nnbzpfmnjpns/vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.21/lib/mongoid/sessions/mongo_uri.rb:49:in `initialize' 

完整的堆栈跟踪可以在http://pastebin.com/8YcJHEmS找到

但是如果我从我的Gemfile中删除Unicorn,资产编译就会成功。 查看Mongoid代码,我可以看到当mongoid.yml文件被解析时发生错误,但我无法弄清楚为什么Unicorn会导致失败。 我的mongoid.yml文件如下所示:

 production: sessions: default: uri:  options: skip_version_check: true safe: true 

我的Gemfile:

 source 'https://rubygems.org' ruby '1.9.3' gem 'rails', '3.2.11' gem 'thin' group :assets do gem 'sass-rails', '~> 3.2' gem 'coffee-rails', '~> 3.2' gem 'uglifier', '>= 1.0.3' gem "twitter-bootstrap-rails", '>=2.1.8' gem "bootstrap_form" end gem "jquery-rails" gem 'jquery-ui-rails', "3.0.1" gem 'newrelic_rpm' gem "httparty" gem "resque" gem "resque-loner" gem "unicorn", "4.4.0" gem "mongoid", "~> 3.0.0" gem "mongo", "~> 1.7.0" gem "bson", "~> 1.7" gem "bson_ext", "~> 1.7" gem 'less-rails', "~> 2.2" gem 'therubyracer', '>= 0.11.1' gem 'libv8', '~> 3.11.8' gem 'devise', '~> 2.1.2' gem 'devise_invitable', '~> 1.0.0' gem 'bootstrap_form' gem 'font-awesome-rails' gem 'omniauth' gem 'omniauth-facebook' gem 'kaminari' gem 'mongoid_search' 

你知道是什么导致了这个吗?

Rails 3:

在预编译资产时尝试关闭应用初始化:

 # config/application.rb config.assets.initialize_on_precompile = false 

这条线应该已经注释掉了。

由于我最近遇到了Rails 4.0和config.assets.initialize_on_precompile = false这个问题,Rails 4.0不再有任何影响我与Heroku支持进行了交谈,并被告知使用此实验室function:

 heroku labs:enable user-env-compile 

我无法得到一个答案,为什么只有Unicorn需要用户环境,但它似乎是某种类型的Unicorn特定问题,或者Thin会阻止整个应用程序启动。

整个事情对我来说似乎很奇怪,并且资产预编译方式存在问题。