2013-02-08 39 views
11

के दौरान mongoid त्रुटि ट्रिगर करता है मेरे पास Heroku पर चल रहे Mongoid 3 का उपयोग कर एक रेल ऐप है। मैंने इसे यूनिकॉर्न का उपयोग करने के लिए अभी अपडेट किया है।यूनिकॉर्न संपत्तियों precompile

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 से यूनिकॉर्न निकालने के लिए, संपत्ति संकलन सफल होता है: जब मैं Heroku करने के लिए इसे तैनात करने की कोशिश मैं निम्नलिखित त्रुटि मिलती है। मोंगोइड कोड में देखकर, मैं देख सकता हूं कि त्रुटि तब होती है जब 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' 

क्या आपको पता है यह क्या पैदा है?

उत्तर

7

रेल 3: जब पूर्व संकलन संपत्ति

कोशिश एप्लिकेशन प्रारंभ बंद करने के लिए:

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

लाइन पहले से ही वहाँ बाहर टिप्पणी की जानी चाहिए।

+0

जिसने इसे हल किया, धन्यवाद! – AdrienF

+0

हालांकि, मैंने उस पंक्ति को * आउट * टिप्पणी की है और यह अभी भी मेरे लिए इस तरह से विफल रहता है। –

+2

स्पष्ट रूप से यह अब रेल 4.0 में समर्थित नहीं है (यह उल्लेख किया गया है कि यह आवश्यक नहीं है) और मुझे यह त्रुटि मिल रही है। –

14

मैं हाल ही में रेल 4.0 और config.assets.initialize_on_precompile = false के साथ इस समस्या थी के रूप में नहीं रह गया है रेल 4.0 मैं Heroku समर्थन के साथ बात की थी के साथ किसी भी प्रभाव पड़ता है और इस प्रयोगशालाओं का उपयोग करने के लिए कहा गया था की सुविधा:

heroku labs:enable user-env-compile 

मैं नहीं कर पाया था इस बात का उत्तर दें कि यूजर पर्यावरण केवल यूनिकॉर्न के साथ क्यों जरूरी है, लेकिन ऐसा लगता है कि यह किसी तरह की यूनिकॉर्न विशिष्ट समस्या है या थिन ऐसा कुछ करता है जो पूरे ऐप को बूटिंग से रोकता है।

पूरी बात मेरे लिए अजीब लगती है और संपत्ति की पूर्व-संकलित तरीके से समस्या की गंध आती है।

+2

https://devcenter.heroku.com/articles/labs-user-env-compile – Andrei