Единорог запускает мангоидную ошибку во время активов прекомпилировать

У меня есть приложение rails, использующее Mongoid 3, работающее на Heroku. Я только что обновил его, чтобы использовать 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

Но если я удалю Unicorn из моего Gemfile, компиляция активов завершится успешно. Заглянув в код Mongoid, я вижу, что ошибка возникает, когда файл mongoid.yml обрабатывается, но я не могу понять, почему Unicorn приведет к сбою. Мой файл mongoid.yml выглядит так:

production:
  sessions:
    default:
      uri: <%= ENV['MONGOHQ_URL'] %>
      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'

Не могли бы вы представить, что это значит?

Ответ 1

Рельсы 3:

Попробуйте отключить инициализацию приложения при предварительном компиляции активов:

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

Строка должна быть уже прокомментирована.

Ответ 2

Как я недавно сталкивался с этой проблемой с Rails 4.0 и config.assets.initialize_on_precompile = false больше не имел никакого эффекта с Rails 4.0, я говорил с поддержкой Heroku, и мне сказали использовать эту функцию:

heroku labs:enable user-env-compile

Мне не удалось получить ответ о том, почему пользовательская среда необходима только для Unicorn, но, похоже, это определенная проблема Unicorn, или Thin делает что-то, что предотвращает загрузку всего приложения.

Все это кажется странным для меня и пахнет проблемой с тем, как активы предварительно скомпилированы.