Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Unicorn在资产预编译期间触发mongoid错误_Ruby On Rails_Ruby On Rails 3_Heroku_Unicorn_Mongoid3 - Fatal编程技术网

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

Ruby on rails Unicorn在资产预编译期间触发mongoid错误,ruby-on-rails,ruby-on-rails-3,heroku,unicorn,mongoid3,Ruby On Rails,Ruby On Rails 3,Heroku,Unicorn,Mongoid3,我在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/mo

我在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'
完整的stacktrace可在以下位置找到:

但是如果我从Gemfile中删除Unicorn,资产编译就会成功。查看Mongoid代码,我可以看到在解析Mongoid.yml文件时会发生错误,但我不明白Unicorn为什么会导致该错误。 我的mongoid.yml文件如下所示:

production:
  sessions:
    default:
      uri: <%= ENV['MONGOHQ_URL'] %>
      options:
        skip_version_check: true
        safe: true

你知道这是什么原因吗?

Rails 3:

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

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

这一行应该已经被注释掉了。

因为我最近在Rails 4.0和
config.assets.initialize\u on\u precompile=false上遇到了这个问题,所以我与Heroku支持人员进行了交谈,并被告知使用此实验室功能:

heroku labs:enable user-env-compile
我无法回答为什么只有Unicorn才需要用户环境,但这似乎是一个Unicorn特有的问题,或者说它会阻止整个应用程序启动


这整件事对我来说似乎很奇怪,而且预编译资产的方式也有问题。

但奇怪的是,我已经注释掉了这一行,它仍然以这种方式对我无效。显然,Rails 4.0不再支持这一点(有人提到这是不必要的),我似乎遇到了这个错误。我在Rails 4.0中得到了这一点,有没有办法解决这个问题?
heroku labs:enable user-env-compile