5

मैं कॉन्फ़िगरेशन को प्रीलोड करना चाहता था (".yml" फ़ाइलों से)।रेल प्रीकंपाइल स्थिर अनियमित

FACEBOOK_CONFIG = YAML.load_file("#{Rails.root}/config/facebook.yml")[Rails.env] 

इसलिए, यह "विकास" मोड में एक आकर्षण की तरह काम करता है: मेरी प्रारंभकर्ता फ़ाइलें (config/initializers/facebook.rb) में से एक में मैं निम्न कोड पंक्ति है। एक बार जब मैं उत्पादन मोड पर स्विच करता हूं, तो यह मुझे बताता रहता है कि FACEBOOK_CONFIG संपत्ति/जावास्क्रिप्ट (यदि यह मायने रखता है) में स्थित "facebook.js.coffee.erb" फ़ाइल के लिए एक अनियमित स्थिरांक है (यदि यह मायने रखता है), यदि मैं "रेक संपत्तियां: प्रीकंपाइल" । RAILS_ENV=production bundle exec rake assets:precompile या

रेक संपत्ति:: मैं की तरह यादृच्छिक सामान कर दिया है की कोशिश की, precompile: सभी

, लेकिन कोई किस्मत

मैं कोशिश की है बताए मेरी उत्पादन वातावरण के लिए "" चर (हालांकि, यह डिफ़ॉल्ट रूप से सच होना चाहिए), बस मामले में।

यह उत्पादन मोड में क्यों काम नहीं करता है (लेकिन, मैं जोर देना चाहता हूं कि यह विकास पर्यावरण में काम (!) करता है)।

क्या कोई उस व्यक्ति की सहायता कर सकता है?

+0

आपकी yml फ़ाइल कैसी दिखती है (निश्चित रूप से आपके प्रमाण पत्र को कम करें) और क्या आप स्थानीय रूप से उत्पादन मोड में बूट कर रहे हैं या क्या यह उसकेोकू जैसी सेवा में विफल रहा है? –

+0

क्या आप प्रारंभकर्ता फ़ाइल पर अपवाद उठाने का प्रयास कर सकते हैं और देख सकते हैं कि यह ट्रिगर हो गया है या नहीं? कोशिश करने की एक और बात यह है कि, प्रारंभकर्ता फ़ाइल पर अपवाद बढ़ाएं और एक अलग रेक कार्य चलाएं जो रेल पर्यावरण को भी लोड करता है। विकास और उत्पादन पर्यावरण दोनों पर प्रयास करें (RAILS_ENV = उत्पादन) – htanata

उत्तर

0
module Rails 

    class << self 
    def facebook_config 
     @@facebook_config ||= nil 
    end 

    def facebook_config=(facebook_config) 
     @@facebook_config = facebook_config 
    end 
    end 
end 

Rails.facebook_config = YAML.load_file("#{Rails.root}/config/facebook.yml")[Rails.env] 

# And you can use it like this in anywhere: 
puts Rails.facebook_config 
4

मुझे बिल्कुल वही समस्या का सामना करना पड़ा। ऐसा इसलिए है क्योंकि आपकी जावास्क्रिप्ट (कॉफ़ेस्क्रिप्ट) फ़ाइल प्रारंभिक में परिभाषित स्थिर के संदर्भ में होती है। क्योंकि यह प्रारंभकर्ता से पहले precompiled है ऐप एक त्रुटि फेंकता है।

यह मुझे मिला सरल समाधान है। आप config में अपने application.rb फ़ाइल के तल पर यह कोड:

module AssetsInitializers 
    class Railtie < Rails::Railtie 
    initializer "assets_initializers.initialize_rails", 
       :group => :assets do |app| 
     require "#{Rails.root}/config/initializers/facebook.rb" 
    end 
    end 
end 

यह मैन्युअल प्रारंभकर्ता फ़ोल्डर से कुछ फ़ाइलों को लोड करता है। यह मेरी समस्या हल हो गया।

उम्मीद है कि यह आपके लिए भी मुद्दा था।

+0

यह सुनिश्चित नहीं है कि ओपी अभी भी इस प्रश्न की निगरानी कर रहा है - लेकिन अगर मैं प्रोब को हल नहीं करता तो मैं वास्तव में आश्चर्यचकित हूं। मैं यहाँ पर +50 अंक के लिए मुंह पर फूमिंग कर रहा हूं। – Laurent

संबंधित मुद्दे