2011-04-09 13 views
6

मेरे पास रेल 3 इंजन हैं। प्रारंभकर्ता में इसे कुछ फ़ोल्डर से फ़ाइलों का एक गुच्छा की आवश्यकता होती है। मेरी इंजन की इस फाइल को उपयोगकर्ता में कोड, व्यापार तर्क, इंजन कॉन्फ़िगर करता है, आदि .. यह सब डेटा मेरी इंजन मुख्य मॉड्यूल में स्थिर संग्रहीत किया जाता है (आवेदन विशेषता में)विकास मोड में रेल 3 इंजन और कोड रीलोडिंग

module MyEngine 
    class << self 
    def application 
     @application ||= MyEngine::Application.new 
    end 
    end 
end 

मैं इस फाइल को होना चाहता हूँ को परिभाषित करता है विकास मोड में प्रत्येक अनुरोध पर पुनः लोड किया गया। मैं प्रारंभकर्ता

config.to_prepare do 
    MyEngine.application.clear! 
    load('some/file') 
end 

के बजाय कुछ इस तरह कर सकते हैं लेकिन इस तरह से मैं मुद्दे हैं (क्योंकि स्थिरांक परिभाषित बेशक (ताकि उपयोगकर्ता सर्वर को फिर से लोड करने के लिए परिवर्तन वह सिर्फ बनाया देखने की जरूरत नहीं है) इस फ़ाइल में वास्तव में पुनः लोड नहीं किया जाएगा)।

आदर्श समाधान मेरे पूरे इंजन को प्रत्येक अनुरोध पर पुनः लोड करने योग्य बनाना होगा, लेकिन इसे करने का तरीका नहीं मिला है।

+1

क्या आपने http://stackoverflow.com/questions/4713066/plugin-reload-with-each-request-rails-3 पर देखा था? – apneadiving

+0

मुझे आश्चर्य है कि इस प्रश्न पर सबकुछ डाउनवोट क्यों हो रहा है ... – Kris

+0

देखें http://stackoverflow.com/questions/22463012/how-can-i-automatically-reload-gem-code-on-each-request-in - विकास-मोड-इन-आर/22463013 # 22463013 – aceofspades

उत्तर

1

यह एक पुराना सवाल है, लेकिन मुझे लगता है कि आपके विकास में ActiveSupport::Dependencies.explicitly_unloadable_constants += %w[ GemName ] जोड़ना है। आरबी को चाल चलनी चाहिए।

+0

काम नहीं किया। (रेल 3.2.2 और rails_admin के साथ कोशिश की।) –

0

क्या आपने reload_plugins को चालू करने का प्रयास किया है?

# environments/development.rb 
config.reload_plugins = true 
+1

काम नहीं लग रहा है (रेल 3.2.3 का उपयोग कर)। –

0

इसकी हैक लेकिन require_dependency का उपयोग करने और वर्ग सिर्फ फिर से खोलने का एक सा काम कर सकते हैं?

# app/models/project.rb 

require_dependency File.join(MyEngine::Engine.root, 'app', 'models', 'project') 
class Project 
end 
0

जो लोग इंजन दृश्यों या I18n अनुवाद केवल पर काम कर रहे के लिए: उन भागों डिफ़ॉल्ट रूप से autoreloaded कर रहे हैं, सर्वर को पुनः आरंभ करने की कोई जरूरत!

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