में विशिष्ट स्थानों में विशिष्ट दृश्यों को बनाए रखना यदि मेरे पास <%= yield %>
टैग है तो मेरे सभी विचार लेआउट में एक ही स्थान पर प्रस्तुत होते हैं। क्या अलग-अलग विचारों के लिए मेरे पास अलग-अलग <%= yield %>
टैग हो सकते हैं? क्या मैं ऐसा कर सकता हूं? धन्यवादरेल पर रूबी: लेआउट
उत्तर
ActionView::Helpers::CaptureHelper में देखो। आप अपने विचारों में कुछ इस तरह कर सकते हैं:
<% content_for :sidebar do %>
<!-- sidebar content specific to this page -->
<% end %>
यह content_for ब्लॉक के अंदर टेम्पलेट चलेगा, लेकिन उत्पादन नियमित टेम्पलेट yield
बफर के हिस्से के रूप में, यह बाद में के लिए एक अलग बफर में संग्रहीत किया जाएगा नहीं होगा । फिर बाद में, लेआउट में शामिल है, तो आप yield :content_name
उत्पादन के लिए सामग्री का उपयोग कर सकते हैं:
<div class="content">
<%= yield %>
</div>
<div class="sidebar">
<%= yield :sidebar %>
</div>
तो एक अर्थ में आप विभिन्न दृश्यों के लिए अलग yield
रों हो सकता है, तो आप सिर्फ साथ भिन्न सामग्री एक नाम देने के लिए है विचारों में content_for
, और लेआउट में उसी नाम के साथ उपज।
अपने मामले पर विचार करें, जहां आप विभिन्न स्थानों पर अलग-अलग विचार देखना चाहते हैं। मान लें कि आपके पास तीन पैनल, पैनल 1, पैनल 2 और पैनल 3 हैं। आप अपने लेआउट में ऐसा कर सकते हैं:
<div id="panel1"><%= yield :panel1 %></div>
<div id="panel2"><%= yield :panel2 %></div>
<div id="panel3"><%= yield :panel3 %></div>
तुम भी एक सादे <%= yield %>
शामिल करने के लिए यदि आप नहीं करना चाहते हैं की जरूरत नहीं है। फिर अपने विचारों में, आप चुन सकते हैं कि कौन सा पैनल पूरे दृश्य के आस-पास उचित content_for
के साथ सामग्री प्रदर्शित करने के लिए चुन सकता है। उदाहरण के लिए, अपने विचारों में से एक इस तरह से बदला जा सकता है:
<% content_for :panel2 do %>
<!-- Your View -->
<% end %>
पैनल 2 में दिखाने के लिए एक और एक, पैनल 3 के लिए लक्षित किया जा सकता है इस तरह:
<% content_for :panel3 do %>
<!-- Your View -->
<% end %>
यह पेज शीर्षक के लिए अच्छा है, जहां आप अधिकांश एगबर्ट पेज को कस्टमाइज़ करना चाहते हैं, लेकिन आप इसे प्रत्येक पृष्ठ में निर्दिष्ट करना चाहते हैं। यह केवल प्रमाणीकरण पृष्ठों पर छिपाने वाले साइडबार जैसे सामानों के लिए अच्छा नहीं बनाता है। – ahnbizcad
हां, आपके पास एकाधिक <%= yield %>
टैग हो सकते हैं। आप मूल दृश्य में इन जैसे नामों के साथ प्रत्येक yield
टैग निर्दिष्ट कर सकते हैं।
<%= yield :head %>
<%= yield :footer %>
फिर अपने अलग-अलग दृश्यों में content_for
टैग का उपयोग करें।
<% content_for :head do %>
<%= stylesheet_link_tag 'custom' %>
<% end %>
आप उपज का उपयोग कर सकते हैं और सामग्री के लिए:
For example:
<%= yield :head %>
<% content_for :head do %>
<title>A simple page</title>
<% end %>
- देखें: layout and rendering guide.
- 1. रेल पर रूबी - लेआउट
- 2. रेल पर रूबी में नेस्टेड लेआउट
- 3. एक लेआउट में आंशिक के लिए रेल तर्क पर रूबी
- 4. क्या रेल लेआउट/सीएसएस संग्रह पर रूबी है?
- 5. रेल पर रूबी में लेआउट में छवि जोड़ें
- 6. रूबी बनाम रूबी रेल पर
- 7. रेल पर रूबी:
- 8. रेल पर रूबी: स्ट्रिंग
- 9. रेल पर रूबी
- 10. रेल पर उत्पन्न रूबी
- 11. रेल पर रूबी
- 12. रेल मार्गों पर रूबी -
- 13. रेल पर रूबी: मॉडल
- 14. रेल पर रूबी: आईआरबी
- 15. रेल पर रूबी
- 16. रेल पर रूबी:
- 17. रेल पर रूबी अद्वितीय
- 18. रेल पर रूबी: पथ
- 19. रेल पर डॉक्सप्लिट रूबी
- 20. रेल पर रूबी:: submodels
- 21. रेल रिपोर्टिंग टूल पर रूबी?
- 22. आईआईएस पर रेल पर रूबी?
- 23. रेल - लेआउट
- 24. हैम के साथ रेल पर रूबी -
- 25. रेल पर्यावरण पर पोर्टेबल रूबी
- 26. रेल पर Django या रूबी
- 27. रेल क्षेत्र औसत पर रूबी?
- 28. रेल पर रूबी में ब्रेडक्रंब
- 29. रेल आवेदन रूट पर रूबी
- 30. रेल पर आईओ/रूबी अवरुद्ध
क्या इससे कोई फर्क पड़ता है कि किस फ़ोल्डर में सामग्री के साथ दृश्य है? किस नियंत्रक के विचार से है? – holaSenor