2013-08-15 6 views
9

में से किसी एक के भीतर से रत्न लोड किए गए ऑर्डर को कैसे बदलें, मेरे पास दो रत्न "कोरगेम" और "एडोनगेम" हैं। एडन जेम अतिरिक्त कार्यक्षमता जोड़ता है जो कोर मणि को ओवरराइट करेगा।रत्न

मैं कैसे सुनिश्चित करूं कि यदि दूसरा मणि जोड़ा गया है तो यह पहले के विचारों और संपत्तियों को ओवरराइट करेगा।

अब तक यह काम करता है जब मुख्य एप्लिकेशन को जोड़ने:

config.railties_order = [ :main_app, AddonGem::Engine, :all] 

लेकिन मैं AddonGem के भीतर से ऐसा करना चाहते हैं चाहते हैं।

धन्यवाद

+1

मैंने फ़ाइलों को लोड करने के पुन: क्रमबद्ध करने के तरीके के बारे में कभी नहीं सुना। लेकिन कौन जानता है ... – phoet

+1

बस कुछ के बारे में सोचा, किसी को पता है कि CoreGem को AddonGem की निर्भरता बनाने से ऑर्डर बदल जाएगा? – montrealmike

उत्तर

1

कहाँ railties_order प्रयोग किया जाता है

railties_order यहाँ प्रयोग किया जाता है:

initializer ब्लॉक के आदेश को चलाने के लिए निर्धारित करने के लिए,

https://github.com/rails/rails/blob/master/railties/lib/rails/application.rb#L337

अन्य रत्नों में मिला।

https://github.com/rails/rails/blob/master/railties/lib/rails/application.rb#L47

तो एक initializer ब्लॉक के अंदर railties_order की स्थापना नहीं बल्कि व्यर्थ होगा, समय initializer ब्लॉक बुलाया गया था द्वारा के रूप में, railties_order पहले से ही स्थापित किया गया था और में आवेदन के बाकी के द्वारा किया जाता है।

क्या आप के बजाय

जाहिर है एक गुच्छा अधिक initializer ब्लॉक कर सकता है Rails::Application::Bootstrap के अंदर हैं। तो शायद

https://github.com/rails/rails/blob/master/railties/lib/rails/application.rb#L262

आप कर सकते हैं बंदर-पैच कुछ initializers के साथ बूटस्ट्रैप मॉड्यूल:

https://github.com/rails/rails/blob/master/railties/lib/rails/application/bootstrap.rb

उन मुख्य आवेदन के प्रारंभकर्ता ब्लॉक से पहले prepended कर रहे हैं? मुझे लगता है कि यह तुम्हारा फोन है।

+0

एमएमएम .. काला जादू: पी –

-1

AddonGem में एक जनरेटर है कि मुख्य अनुप्रयोग में इस कोड को

config.railties_order = [ :main_app, AddonGem::Engine, :all] 

injects, एक addongem:install आदेश की तरह बनाओ।

बस पूरा होने के लिए, हालांकि यह एक आसान तरीका है। कोर के बाद एडन को हुक करना संभव होना चाहिए।

+0

यह एक अच्छा विकल्प नहीं है क्योंकि यह उस ऐप या अन्य रत्नों को तोड़ सकता है (जिसमें एक ही समस्या है)। मैं वास्तव में केवल अपने रत्नों के क्रम को बदलना चाहूंगा – montrealmike

+0

शायद नहीं: पी –

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