दो तरीके है कि मैं का उपयोग कर रहे हैं:
छोटे, तुच्छ लिपियों कि सिर्फ आंख कैंडी का एक सा जोड़ रहे हैं के लिए, मैं अक्सर शामिल उन्हें इनलाइन टेम्पलेट में वे संशोधित (आप दिखाया है बस की तरह) , क्योंकि इस तरह से ट्रैक रखना मेरे लिए आसान है।
कुछ भी एक से अधिक या दो छोटे लाइनों है कि मैं इसे विनीत रखने के लिए, लेकिन इसे लोड का उपयोग कर के लिए content_for
मेरे आवेदन लेआउट इस (Haml में) की तरह दिखता है:
= javascript_include_tag 'jquery.144.min','rails','jquery.tools','application'
= yield :scripts
महत्वपूर्ण हिस्सा है yield :scripts
। फिर एक पृष्ठ जहाँ मैं कुछ जावास्क्रिप्ट मैं क्या जरूरत है:
- content_for :scripts do
= javascript_include_tag 'photo_form'
इस शीर्ष लेख में जावास्क्रिप्ट को लोड करता है, लेकिन दिए गए टेम्पलेट से पता चला है तभी। content_for
संबंधित नाम के साथ yield
विधि पर सामान भेजता है।
आप कहीं भी उपज ब्लॉक चिपक सकते हैं - मेरे पास बंद शरीर टैग से पहले भी एक है। उपज/content_for वास्तव में आसान है।
नोट्स में टिप्पणियों की ओर इशारा करते हुए नोट करें, जो कुछ भी सिर में लोड नहीं होना चाहिए पृष्ठ के अंत में लोड किया जाना चाहिए।
यदि आपके पास कुछ और जटिल है, तो आप अपने टेम्पलेट्स और अपने एप्लिकेशन व्यू के बीच इंस्टेंस चर का उपयोग कर सकते हैं। उदाहरण के लिए, मेरे ऐप में मेन्यूबार है जो एप्लिकेशन लेआउट में है। इसलिए, कभी-कभी मैं केवल कुछ पृष्ठों पर संदर्भ-विशिष्ट बटन या बटन की अतिरिक्त पंक्ति को ट्रिगर करना चाहता हूं।
अपने आवेदन लेआउट में मैं एक आंशिक जो मेनू renders फोन, मेनू कोड लगता है:
#menubar (normal menu stuff)
- if @special_menu
#special_menu
तो, तो किसी भी टेम्पलेट में आप कर सकते हैं:
- @special_menu = true
... और उस पृष्ठ के लिए दिया गया मेनू दिखाई देगा। आप इसे नियंत्रक क्रियाओं में भी कर सकते हैं, मेरे पास एक नियंत्रक है जहां मैंने फ़िल्टर से पहले एक जोड़ा जो मेनू फ्लैग में से एक को सत्य में सेट करता है। आप जावास्क्रिप्ट सामान के किसी भी जटिल सेट के लिए वही काम कर सकते हैं जिसे आप सशर्त रूप से शामिल करना चाहते हैं।
इन विचारों मैं इस railscast देखने से मिल के अधिकांश: http://railscasts.com/episodes/30-pretty-page-title
आप एक बार देख ले जाना चाहिए!
जब आप "बहुत तेज़ी से" कहते हैं तो आप अतिरंजित हो सकते हैं। जावास्क्रिप्ट का 20-30KB बहुत है, फिर भी यह "बड़ा" नहीं है क्योंकि इसे लगभग 3KB तक संपीड़ित ब्राउज़र पर भेज दिया जा सकता है और यदि आपका सर्वर ठीक से कॉन्फ़िगर किया गया है तो अनुरोधों के बीच कैश किया जाएगा। यह केवल jQuery-UI या Google मानचित्र जैसी बड़ी लाइब्रेरी है जो आपको चिंता करनी चाहिए, और उन पृष्ठों पर लोड नहीं करना जो उनका उपयोग नहीं कर सकते हैं। – tadman