2011-11-18 7 views
5

Warbler चाहता है कि आप WAR बनाते समय RAILS_ENV निर्दिष्ट करें। इसके बाद जेनरेट किए गए WAR के web.xml के अंदर रखा जाता है।जेआरबी वॉर्बलर का उपयोग करना, क्या एक डब्ल्यूएआर उत्पन्न करना संभव है जो पर्यावरण परिवेश से RAILS_ENV सीख सकता है?

हालांकि, यदि आप एक युद्ध बना सकते हैं जो पर्यावरण से अपने RAILS_ENV को सीखा है, तो आप एक युद्ध बना सकते हैं जिसका उपयोग स्टेजिंग या उत्पादन के लिए किया जा सकता है - दूसरे शब्दों में, एक बेहतर प्रबंधन व्यवस्था जहां एक युद्ध का परीक्षण किया जा सकता है और फिर बदले बिना तैनात किया गया।

उत्तर

4

वेब.एक्सएमएल में जो कुछ भी डालता है उससे पहले JRuby-Rack पहले से ही RAILS_ENV से पढ़ने के लिए सेट अप किया गया है, ताकि वह हिस्सा सुनहरा हो।

ENV['RAILS_ENV'] = '<%= config.webxml.rails.env %>' 

इस समय यह करने के लिए एक वास्तविक अच्छा तरीका नहीं है, लेकिन आप Warbler::Jar#add_init_file ओवरराइड कर सकते हैं: केवल एक चीज आप हार की जरूरत है कि युद्ध फाइल के अंदर एक META-INF/init.rb में विलय हो जाता है इस rails.erb टेम्पलेट है अपने config/warble.rb के शीर्ष पर इस प्रकार रेल टेम्पलेट दूर करने के लिए:

class Warbler::Jar 
    alias_method :orig_add_init_file, :add_init_file 
    def add_init_file(config) 
    config.init_contents.delete("#{config.warbler_templates}/rails.erb") if config.init_contents 
    orig_add_init_file(config) 
    end 
end 
+0

धन्यवाद! बीटीडब्ल्यू, मेटा-आईएनएफ/init.rb में रेल टेम्पलेट (rails.erb) का उद्देश्य क्या है? क्या इसे हटाने से कोई प्रतिकूल प्रभाव होगा? –

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