2011-05-04 13 views
27

रेल 3.1 में किसी इंजन में संपत्ति कैसे प्रदान की जानी चाहिए? उन्हें कहाँ स्थित होना चाहिए और क्या उन्हें स्वचालित रूप से शामिल किया जा सकता है?रेल के साथ इंजन की संपत्ति 3.1

(originally asked by Tomas Celizna)

उत्तर

41

सभी इंजनों 'संपत्ति फ़ोल्डरों को रास्तों स्वचालित रूप से लोड कर रहे हैं।

संपत्तियां डिफ़ॉल्ट रूप से लोड नहीं होती हैं। यह समझ में आता है क्योंकि लोडिंग require_tree . के साथ की जाती है, जो वर्तमान फ़ोल्डर से सभी सीएसएस/जेएस लोड करता है (यानी मुख्य अनुप्रयोग संपत्ति 'फ़ोल्डर) लेकिन इंजन संपत्तियों के बारे में कुछ भी नहीं कहता है।

आसान समाधान यह है कि उपयोगकर्ता को js/css को application.js/css में कहीं भी आवश्यकता हो या जहां कहीं भी इसकी आवश्यकता हो। चूंकि पथ सही तरीके से लोड होते हैं, उपयोगकर्ता को केवल आपकी संपत्ति का नाम निर्दिष्ट करने की आवश्यकता होती है (मैं आपके इंजन के नाम का उपयोग करने की अनुशंसा करता हूं)। उदाहरण:

संलग्न main_app/app/assets/javascripts/application.js रहे हैं:

//= require_tree . 

यह सब your_engine_name/app/assets/javascripts/ में फ़ाइलों जे एस लोड होगा:

//= require your_engine_name 

आप अलग अलग फ़ाइलों में अपने js विभाजित किया है, तो आपकी फ़ाइल your_engine_name/app/assets/javascripts/your_engine_name.js निम्नलिखित हो सकता था , "।" के रूप में स्थानीय फ़ोल्डर को संदर्भित करता है (इस मामले में आपके इंजन की जावास्क्रिप्ट का फ़ोल्डर)।

ध्यान दें कि ActionView::Helpers::AssetTagHelper.register_javascript_expansion कोई प्रभाव नहीं पड़ता है जब config.use_sprockets सेट है। मुझे आशा है कि वे कम से कम उस मामले में चेतावनी देंगे।

यदि आपके पास अपने इंजन को स्थापित करने के लिए एक रेक कार्य है, तो आप application.js में संलग्न कर सकते हैं।

उपयोगकर्ता को शामिल करने का एक और तरीका यह है कि erb लेआउट में <%= javascript_include_tag "your_engine_name" %> डालें।

मुझे नहीं लगता कि यह वर्तमान में कुछ काम के लिए जा रहा तहत स्वचालित रूप से

+1

sprockets सामान है डाला है करने के लिए एक रास्ता है, लेकिन आप क्या कहा के बाकी स्पॉट पर है। बहुत बढ़िया। –

+0

छवियों के बारे में क्या? मैंने मणि की संपत्ति से छवियों तक पहुंचने का प्रयास किया लेकिन यह असफल रहा ... क्या उन दो समस्याओं से संबंधित हैं? – mabounassif

+0

एनवीएम मैंने बहुत जल्दी टिप्पणी की, एक मणि के भीतर संपत्ति अब रेल में स्वचालित रूप से लोड हो जाती है 3.1 – mabounassif

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