独角兽触发资产预编译期间mongoid错误(Unicorn triggers mongoid err

2019-07-19 15:23发布

我已经使用在Heroku Mongoid 3运行一个Rails应用程序。 我刚刚更新,它使用独角兽。 当我尝试部署到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删除独角兽,资产编译成功。 展望Mongoid代码,我可以看到,当mongoid.yml文件得到解析错误发生,但我想不出为什么麒麟会导致该故障。 我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'

你有任何想法是什么引起的?

Answer 1:

轨道3:

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

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

该行应该已在那里注释掉。



Answer 2:

正如我最近有这个问题和Rails 4.0和config.assets.initialize_on_precompile = false不再使用Rails 4.0我对Heroku支持谈到任何影响,被告知使用该实验室功能:

heroku labs:enable user-env-compile

我没能得到一个答案,为什么用户环境是必要只与独角兽,但它似乎是某种形式的独角兽具体问题或细做一些事情,以防止整个应用程序启动。

整个事情看起来奇怪,我和方式有问题的气味资产是预编译。



文章来源: Unicorn triggers mongoid error during assets precompile