क्या कोई टेम्पलेट टेम्पलेट प्राप्त करने का कोई तरीका है? मैं रेल का उपयोग नहीं कर रहा हूँ।क्या मैं एक एआरबी टेम्पलेट का वारिस कर सकता हूं?
उत्तर
नहीं, आप एक ERB टेम्पलेट के वारिस नहीं कर सकते - यह एक वर्ग नहीं है यह सिर्फ एक फ़ाइल है
संपादित करें:।। @ दान की टिप्पणी के अनुसार
, मैं Django टेम्पलेट विरासत पर एक दृष्टि डाली तथा यह रेल content_for
के समान दिखता है। हालांकि मुझे नहीं पता कि रेल के बाहर इसका उपयोग कैसे करें। अंक 3.2 और 3.3, औरपर here देखें।
मुझे नहीं लगता कि आपने सवाल का जवाब दिया है। यदि आपको Django टेम्पलेट्स के साथ कोई अनुभव हुआ है, तो आप समझेंगे कि वह क्या पूछने की कोशिश कर रहा है। –
आप जो खोज रहे हैं वह partials और layouts है। आप अपने पृष्ठ के लिए एक कंटेनर के रूप में एक लेआउट परिभाषित कर सकते हैं जिसमें वैश्विक डिज़ाइन सामग्री (आपका सीएसएस और जावास्क्रिप्ट शामिल है, हेडर और पाद लेख इत्यादि हैं। इस दृश्य के अंदर, आप yield
किसी अन्य टेम्पलेट में कर सकते हैं, और वह टेम्पलेट partials
प्रस्तुत कर सकता है।
रेल में यह सच है, लेकिन रेल में नहीं होने पर यह वास्तव में सही है? –
नहीं। रेल आपके लिए उन तरीकों को संभालती है। हालांकि आप एक्शनकंट्रोलर के लिए रेल स्रोत कोड देख सकते हैं, क्योंकि इसमें उपयुक्त विधियां हैं, और आप या तो आवश्यक मॉड्यूल शामिल कर सकते हैं, या उन्हें स्वयं लागू कर सकते हैं। –
हाँ, मैं उनके बारे में जानता हूं, लेकिन दुर्भाग्य से मैं रेल का उपयोग नहीं कर रहा हूं। मैं एक सिनात्रा व्यक्ति हूं :) – Geo
मुझे भी वास्तव में django टेम्पलेट विरासत पसंद है, लेकिन यह कम से कम sinatra के साथ उपलब्ध नहीं है।
sinatra book बताते हैं कि कैसे आप एक layout.erb
उपयोग कर सकते हैं एक मानक पृष्ठ लेआउट परिभाषित करने के लिए:
तुम बस की तरह कुछ के साथ एक views/layout.erb
फ़ाइल परिभाषित करने की जरूरत:
<html>
<head>..</head>
<body>
<%= yield %>
</body>
</html>
और फिर साथ अपने ERB टेम्पलेट फोन उदाहरण के लिए erb :index
। सिनात्रा दोनों टेम्पलेट्स प्रस्तुत करेगा और लेआउट.एरबी प्रतिपादन के परिणामस्वरूप आपके इंडेक्स टेम्पलेट की सामग्री शामिल करेगा।
क्या टेम्पलेट के एक से अधिक हिस्से को ओवरराइड करने का कोई तरीका है? कहें, '
ऐसा करने का सबसे अच्छा तरीका शायद https://github.com/sinatra/sinatra-contrib/blob/master/lib/sinatra/content_for.rb का उपयोग करना है, फिर आप केवल 'content_for: some_key' का उपयोग कर सकते हैं और फिर ' yield_content: कुछ लेआउट आपके लेआउट में – simao
अब फ्रेमवर्क Rango है, टेम्पलेट विरासत के साथ पहला रूबी ढांचा, और एक ढांचा-अज्ञेय template inheritance मणि, निकाला गया है।
जब आप किसी अन्य टेम्पलेट से प्राप्त करते हैं तो आप क्या होने की उम्मीद करते हैं? आप टेम्पलेट, या इसके हिस्से को ओवरराइड करने की अपेक्षा कैसे करेंगे? – molf
अन्य टेम्पलेट्स की तरह करें। उदाहरण के लिए पार्ट्स उन सभी के लिए जेनेरिक हो सकते हैं, जैसे कि पाद लेख और हेडर। – Geo
कृपया विस्तार से समझाएं कि आप क्या चाहते हैं – johannes