2012-02-13 22 views
6

मैं मौजूदा रेल 2 ऐप को रेल 3 में अपडेट कर रहा हूं, और संपत्ति पाइपलाइन को समझने में कुछ परेशानी है। मैं guide के माध्यम से पढ़ा है और के रूप में मैं इसे समझते हैं, निम्न निर्देशिकाओं में से किसी में फ़ाइलें/संपत्ति के लिए हल होगा:रेल 3 संपत्ति पाइपलाइन और फ़ाइल टकराव

  • एप्लिकेशन/संपत्ति
  • lib/संपत्ति
  • विक्रेता/संपत्ति

और आप मददगारों का उपयोग करके उन्हें एक्सेस कर सकते हैं ... यानी

image_tag('logo.png') 

लेकिन मुझे समझ में नहीं आता कि टकराव कैसे संभाले जाते हैं? उदाहरण के लिए, क्या निम्न फ़ाइलें देखते हैं अगर:

  • एप्लिकेशन/संपत्ति/images/logo.png
  • lib/संपत्ति/images/logo.png

अगर मैं MyApp पर जाएं। कॉम/संपत्ति/छवियों/logo.png, कौन सी फाइल लौटा दी जाएगी? मैं अपने ऐप के भीतर मैन्युअल रूप से टकराव की जांच कर सकता था, लेकिन यह संपत्ति दर्द पाइपलाइन पर भरोसा करते हुए रत्नों का उपयोग करते समय एक दर्द बिंदु बन जाता है।

उत्तर

2

जो मैंने पाया है उसके आधार पर, आपके पास डुप्लिकेट फ़ाइलें नहीं हो सकती हैं, क्योंकि रेल केवल पहले पाए गए हैं।

यह एक डिजाइन दोष का एक सा की तरह लगता है के रूप में एक मणि decoupled मॉड्यूल में अपने स्वयं के संपत्ति

+0

मैं jQuery 'jQuery-rails' मणि द्वारा बंडल मिल गया है। मेरे रेल प्रोजेक्ट के एक अलग हिस्से में, मैं परियोजना के बाकी हिस्सों के लिए 'jquery-rails' को त्याग दिए बिना, बोवर द्वारा प्राप्त jQuery के एक अलग संस्करण का उपयोग करना चाहता हूं। क्या ऐसा करने के लिए कोई रास्ता है? –

0

नाम स्थान नहीं हो सकता है क्यों index manifest का लाभ लेने नहीं और व्यवस्थित अपने app/assets? इसके बाद आप किसी विशेष छवि, image_tag('admin/logo.png') का संदर्भ ले सकते हैं, और अपने यूआई कोडबेस को अधिक अर्थपूर्ण तरीके से व्यवस्थित कर सकते हैं। आप एक जटिल घटक को भी बढ़ावा दे सकते हैं, जैसे सिंगल पेज एप्लिकेशन को अपने मॉड्यूल में और ऐप के विभिन्न हिस्सों से इसका पुन: उपयोग करें।

मान लीजिए कि आप एप्लिकेशन तीन मॉड्यूल से बाहर बना है दो: सार्वजनिक पक्ष, एक व्यवस्थापक यूआई और, जैसे, एक सीआरएम अपने एजेंटों आपकी कंपनी में बेचने की प्रक्रिया पर नज़र रखने के जाने के लिए:

app/assets/ 
├── coffeescripts 
│   ├── admin 
│   │   ├── components 
│   │   ├── index.coffee 
│   │   └── initializers 
│   ├── application 
│   │   ├── components 
│   │   ├── index.sass 
│   │   └── initializers 
│   └── crm 
│    ├── components 
│    ├── index.sass 
│    └── initializers 
├── images 
│   ├── admin 
│   ├── application 
│   └── crm 
└── stylesheets 
    ├── admin 
    │   ├── components 
    │   └── index.sass 
    ├── application 
    │   ├── components 
    │   └── index.sass 
    └── crm 
     ├── components 
     └── index.sass 

21 directories, 6 files 

नहीं अद्यतन करने के लिए भूल जाते हैं अपने application.rb तो वे ठीक से precompiled किया जाएगा:

config.assets.precompile = %w(admin.js application.js crm.js 
           admin.css application.css crm.css) 
संबंधित मुद्दे