Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

जेनरेटर और टेम्प्लेट के साथ बूटस्ट्रैपिंग रेल ऐप्स

<पी> रेल का बैटरी-युक्त दृष्टिकोण इसकी सबसे बड़ी संपत्तियों में से एक है। कोई भी अन्य ढाँचा आपके एप्लिकेशन को शीघ्रता से धरातल पर उतारना इतना आसान नहीं बनाता है, कम से कम आंशिक रूप से रेल्स के जेनरेटर के कारण।

<पी> यदि आपने काफी समय तक रेल्स का उपयोग किया है, तो आपने जनरेटर देखे होंगे। एक नया एप्लिकेशन बनाने की आवश्यकता है? rails new चलाएँ . नए मॉडलों और दृश्यों का एक समूह तैयार करने की आवश्यकता है? rails generate scaffold चलाएँ . तेजी से शुरुआत करने या अपने वर्कफ़्लो को सुव्यवस्थित करने में आपकी सहायता के लिए दर्जनों और उपलब्ध हैं।

<पी> लेकिन कभी-कभी, जनरेटर का उपयोग करना ही पर्याप्त नहीं होता है। हो सकता है कि आप इन आदेशों के व्यवहार को अनुकूलित करना चाहें या अपना स्वयं का भी बनाना चाहें। इस लेख में, हम जेनरेटर पर करीब से नज़र डालेंगे - विशेष रूप से, टेम्प्लेट का उपयोग करके अपना स्वयं का कस्टम रेल एप्लिकेशन कैसे बनाएं।

<पी> आइए शुरू करें!

रेल जेनरेटर क्या हैं?

<पी> जेनरेटर फ़ंक्शंस (जिसे आप पायथन या जावास्क्रिप्ट से परिचित हो सकते हैं) के साथ भ्रमित न हों, रेल्स जेनरेटर कस्टम थोर कमांड हैं जो चीजों को उत्पन्न करने पर ध्यान केंद्रित करते हैं।

<पी> बहुत सारे उदाहरण हैं. आप संभवतः मॉडल जनरेटर (rails generate model) से परिचित होंगे ) नए ActiveRecord मॉडल या माइग्रेशन जनरेटर (rails generate migration) बनाने के लिए ) नए माइग्रेशन उत्पन्न करने के लिए। rails generate generator भी है जो - आपने अनुमान लगाया - एक नया जनरेटर बनाता है!

<पी> जेनरेटर एक-दूसरे को कॉल कर सकते हैं - उदाहरण के लिए, rails scaffold कई अन्य जनरेटरों को कॉल करेगा - और फ़ाइलें बनाने या संशोधित करने, रत्न स्थापित करने, विशिष्ट रेक कार्य चलाने और बहुत कुछ करने के तरीके प्रदान करेगा। यह कैसे काम करता है यह समझने के लिए आइए एक सरल मॉडल स्पेक जेनरेटर बनाएं।

रूबी ऑन रेल्स में अपना खुद का जेनरेटर बनाना

<पी> निम्नलिखित चलाएँ:

 <पी> यह /lib/generators/model_spec में कई नई फ़ाइलें बनाएगा . हम model_spec_generator.rb को संशोधित कर सकते हैं फ़ोल्डर lib/generators/model_spec/ में सही निर्देशिका में एक मॉडल स्पेक फ़ाइल बनाने के लिए:

 <पी> template कमांड lib/generators/model_spec/templates में एक टेम्पलेट फ़ाइल की तलाश करेगा निर्देशिका और निर्दिष्ट स्थान पर प्रस्तुत करें - spec/models निर्देशिका. यह कमांड टेम्प्लेट फ़ाइल में पाए जाने वाले ईआरबी-शैली वेरिएबल्स को प्रतिस्थापित कर देगा।

<पी> source_root सेट करके , हम अपने जेनरेटर को बताते हैं कि उसे संदर्भित टेम्पलेट फ़ाइलें कहां मिल सकती हैं। टेम्प्लेटmodel_spec.rb फ़ोल्डर lib/generators/model_spec/templates/ में ऐसा दिख सकता है:

 <पी> एक बार जब आप वह फ़ाइल बना लेते हैं, तो आप एक नई विशिष्ट फ़ाइल बनाने के लिए जनरेटर चला सकते हैं।

 <पी> कई रत्न इस जैसे जनरेटर के साथ भेजे जाते हैं। वास्तव में, हमने जेनरेटर आरएसपीसीई जहाजों का एक सरलीकृत संस्करण बनाया है। फ़ैक्टरीबॉट के पास फ़ैक्टरियों के लिए एक जनरेटर है। इसके और भी कई उदाहरण हैं।

<पी> विभिन्न रत्नों में जेनरेटर हमारे द्वारा बनाए गए जेनरेटर से अधिक परिष्कृत हैं। हम अपने जनरेटर से तर्क ले सकते हैं या उसे मौजूदा जनरेटर जैसे rails scaffold में भी जोड़ सकते हैं . यदि आप अधिक जानना चाहते हैं तो रेल जेनरेटर दस्तावेज़ देखें।

<पी> इसलिए जनरेटर के पास मौजूदा एप्लिकेशन में आपके वर्कफ़्लो को सरल बनाने की क्षमता है। लेकिन क्या हम नए एप्लिकेशन की सेटिंग को अनुकूलित करने के लिए जेनरेटर का भी उपयोग कर सकते हैं?

<पी> टेम्प्लेट दर्ज करें!

रूबी ऑन रेल्स में टेम्पलेट्स

<पी> जैसा कि नाम से पता चलता है, टेम्प्लेट आपके एप्लिकेशन सेटअप को अनुकूलित करने के लिए फ़ाइलें हैं। इन्हें उन टेम्प्लेट फ़ाइलों के साथ भ्रमित न करें जिनकी हमने पहले चर्चा की थी! हुड के तहत, वे केवल एक विशिष्ट उद्देश्य वाले जेनरेटर हैं, जैसा कि टेम्प्लेट एपीआई द्वारा प्रमाणित है। हालांकि जनरेटर के बिल्कुल समान नहीं, फिर भी वे बहुत समान हैं।

<पी> यदि आपके पास कोई मौजूदा टेम्प्लेट फ़ाइल है, तो आप उसका उपयोग इस प्रकार कर सकते हैं:

 <पी> स्थानीय फ़ाइल निर्दिष्ट करने के बजाय, आप एक यूआरएल भी निर्दिष्ट कर सकते हैं। यह विशेष रूप से उपयोगी है क्योंकि यह आपको एप्लिकेशन टेम्पलेट साझा करने की अनुमति देता है।

 <पी> rails new चलाते समय आप टेम्प्लेट का उपयोग करने तक ही सीमित नहीं हैं या तो. यदि आपने पहले से ही एक ऐप सेट कर लिया है, तो आप बाद में निष्पादित करके टेम्पलेट्स लागू कर सकते हैं:

 <पी> टेम्प्लेट अत्यंत उपयोगी हो सकते हैं. कौन हर बार एक नया ऐप बनाते समय समान रत्नों को जोड़ना और समान कॉन्फ़िगरेशन परिवर्तन करना स्वचालित नहीं करना चाहता? अपना खुद का एप्लिकेशन टेम्पलेट बनाना बहुत मजेदार है - भले ही यह लंबे समय में बहुत अधिक समय नहीं बचाता है।

रेल में अपना खुद का टेम्पलेट बनाना

<पी> अब हम जनरेटर और टेम्प्लेट का उपयोग करने के तरीके के बारे में जानते हैं। आइए कुछ सेटअप चरणों को स्वचालित करने के लिए एक सरल एप्लिकेशन टेम्पलेट बनाएं।

<पी> आप अपना रेल ऐप कैसे सेट अप करते हैं, यह बहुत हद तक व्यक्तिगत पसंद पर निर्भर करता है, लेकिन यहां एक उदाहरण दिया गया है:

  1. dotenv रत्न स्थापित करें।
  2. एक .env.development बनाएं विकास परिवेश के लिए फ़ाइल.
  3. पर्यावरण चर का उपयोग करने के लिए डेटाबेस कॉन्फ़िगरेशन फ़ाइल को अनुकूलित करें।
  4. वैकल्पिक रूप से Rspec इंस्टॉल और सेटअप करें।
<पी> आइए एक स्थानीय फ़ाइल बनाएं - mytemplate.rb — और dotenv जोड़ें gem का उपयोग करना आदेश.

 <पी> जैसा कि हमने अभी-अभी dotenv रत्न जोड़ा है, आइए एक .env.development भी बनाएं हमारे डेटाबेस कॉन्फ़िगरेशन को शामिल करने के लिए फ़ाइल।

<पी> आप create_file का उपयोग करके विशिष्ट सामग्री के साथ एक नई फ़ाइल बना सकते हैं . आपको यह टेम्प्लेट या जनरेटर दस्तावेज़ में नहीं मिलेगा, क्योंकि यह विधि थोर द्वारा प्रदान की गई है। आपको उपनाम file भी मिल सकता है . एप्लिकेशन टेम्प्लेट का मूल्यांकन Rails::Generators::AppGenerator के संदर्भ में किया जाता है , और ठीक यहीं file है उपनाम परिभाषित है.

 <पी> app_name वेरिएबल में rails new का पहला तर्क शामिल है . इस वेरिएबल का उपयोग करके, हम यह सुनिश्चित कर सकते हैं कि हमारी कॉन्फ़िगरेशन फ़ाइल जेनरेट किए गए एप्लिकेशन से मेल खाती है।

<पी> इसके बाद, आइए डेटाबेस से जुड़ने के लिए अपने पर्यावरण चर का उपयोग करें। हम संपूर्ण config/database.yml को अधिलेखित कर सकते हैं create_file का उपयोग करना कमांड, लेकिन आइए इसके बजाय inject_into_file का उपयोग करके इसे संशोधित करें .

 <पी> हम after के साथ स्ट्रिंग्स या रेगेक्स दोनों का उपयोग कर सकते हैं यह निर्दिष्ट करने के लिए तर्क कि सामग्री को कहाँ इंजेक्ट किया जाए।

<पी> बेशक, इस प्रकार के कॉन्फ़िगरेशन का उपयोग केवल तभी समझ में आता है जब कोई उपयोगकर्ता SQLite के साथ कोई एप्लिकेशन नहीं बना रहा हो। आप options का उपयोग करके कुछ तर्कों की उपस्थिति की जांच कर सकते हैं। परिवर्तनशील. यह सबसे अच्छा है कि आप रेल्स ऐप जनरेटर के स्रोत कोड को पढ़ें और देखें कि कौन से विकल्प उपलब्ध हैं।

 <पी> अंतिम लेकिन महत्वपूर्ण बात, आइए उपयोगकर्ताओं को यदि वे चाहें तो रुपेक इंस्टॉल करने की भी अनुमति दें। उपयोगकर्ता इनपुट लेने और इंटरैक्टिव टेम्पलेट बनाने के लिए विभिन्न तरीके हैं। yes? विधि उपयोगकर्ता से पुष्टि मांगती है:

 <पी> हम gem को पहले से ही जानते हैं विधि, लेकिन generate और after_bundle नये हैं.

<पी> जैसा कि पहले उल्लेख किया गया है, रुपेक अपने स्वयं के जेनरेटर जोड़ता है, और आप इन जेनरेटर (या उस मामले के लिए कोई अन्य) को सीधे अपने टेम्पलेट से कॉल कर सकते हैं। लेकिन एक दिक्कत है - रत्न gem के साथ निर्दिष्ट हैं विधि केवल टेम्पलेट के अंत में स्थापित की जाती है। generate पर कॉल किया जा रहा है ऐसे रत्न द्वारा आपूर्ति किया गया जनरेटर विफल हो जाएगा - यही कारण है कि आपको कमांड को after_bundle के साथ कॉलबैक के रूप में पंजीकृत करना चाहिए। .

<पी> ध्यान दें :इससे पहले कि हम समाप्त करें, फ़ाइलें बनाने या संशोधित करने के बारे में एक संक्षिप्त जानकारी। हमने create_file का उपयोग किया और inject_into_file ,लेकिन कई अन्य विकल्प भी हैं। आपको copy_file मिल सकता है या template विभिन्न टेम्प्लेट पढ़ते समय। चीजों को सरल बनाए रखने के लिए मैंने यहां उनका उल्लेख नहीं किया। यदि आप अधिक उन्नत टेम्पलेट बनाना चाहते हैं, तो आपको पता होना चाहिए कि फ़ाइलों से निपटने के लिए ये अन्य विधियाँ मौजूद हैं।

परिणाम:रेल में अंतिम टेम्पलेट

<पी> अंतिम टेम्पलेट इस तरह दिखना चाहिए:

 <पी> आप इस विशेष टेम्पलेट का परीक्षण निम्न चलाकर कर सकते हैं:

 <पी> या:

 <पी> कस्टम डेटाबेस कॉन्फ़िगरेशन का लाभ उठाने के लिए।

<पी> जैसा कि उल्लेख किया गया है, यह फ़ाइल GitHub सार के रूप में साझा करने के लिए बिल्कुल उपयुक्त है। इसे अपनी आवश्यकताओं के अनुरूप अनुकूलित करें, इसे अपलोड करें, और फिर इसे अपने सहकर्मियों, दोस्तों और अपने कस्टम ऐप टेम्पलेट में रुचि रखने वाले किसी अन्य व्यक्ति के साथ साझा करें।

रेल जेनरेटर और टेम्पलेट्स के बारे में अधिक जानें

<पी> कहने की जरूरत नहीं है, हमने यहां सिर्फ सतह को खंगाला है।

<पी> रेल ऐप्स को लिखने और विकसित करने के लिए हर किसी की अलग-अलग प्राथमिकताएँ होती हैं, इसलिए वहाँ कई जनरेटर और एप्लिकेशन टेम्पलेट मौजूद हैं। आप उनके बारे में पढ़कर विशिष्ट अनुकूलन करने के बारे में बहुत कुछ सीख सकते हैं। मैं क्रिसऑलिवर के जम्पस्टार्ट और रेल्सबाइट्स की अनुशंसा करता हूं, जिनमें से उत्तरार्द्ध टेम्पलेट्स का एक समुदाय-क्यूरेटेड संग्रह है।

<पी> इसमें थॉटबॉट के सस्पेंडर्स भी हैं, जिन्होंने मुझे रेल जनरेटर और टेम्पलेट्स के बारे में गहराई से जानने के लिए प्रेरित किया। मैंने अपना स्वयं का एप्लिकेशन टेम्प्लेट भी लिखा - शिएनेंज़ेपेलिन - जो अद्यतित नहीं होने के बावजूद, अभी भी कुछ प्रेरणा प्रदान कर सकता है।

रैप अप:रूबी ऑन रेल्स जेनरेटर और टेम्प्लेट के साथ शुरुआत करें

<पी> इस पोस्ट में, हमने रेल जनरेटर की मूल बातें और उनका उपयोग कैसे किया जाता है, इस पर गौर किया। नए मॉडल विनिर्देशों को लिखना आसान बनाने के लिए हमने अपना स्वयं का जेनरेटर बनाया।

<पी> फिर हमने टेम्प्लेट में गहराई से अध्ययन किया और सीखा कि आप अपने एप्लिकेशन सेटअप को कस्टमाइज़ करने के लिए एक सरल टेम्प्लेट कैसे बना सकते हैं। यह थोड़ा सा काम हो सकता है, लेकिन काफी फायदेमंद भी हो सकता है। यदि अपना स्वयं का टेम्प्लेट लिखना आपके लिए नहीं है, तो चुनने के लिए ऑनलाइन कई टेम्प्लेट मौजूद हैं!

<पी> हैप्पी टेम्प्लेटिंग!

<पी> पी.एस. यदि आप प्रेस से हटते ही रूबी मैजिक पोस्ट पढ़ना चाहते हैं, तो हमारे रूबी मैजिक न्यूज़लेटर की सदस्यता लें और एक भी पोस्ट न चूकें! जेनरेटर और टेम्प्लेट के साथ बूटस्ट्रैपिंग रेल ऐप्स

हंस-जॉर्ग श्नडलिट्ज़

<पी> हमारे अतिथि लेखक हंस वियना, ऑस्ट्रिया से एक रेल इंजीनियर हैं। वह अपना अधिकांश समय कोडिंग करने या कोडिंग के बारे में पढ़ने में बिताता है, और कभी-कभी अपने ब्लॉग पर भी इसके बारे में लिखता है! जब वह स्क्रीन के सामने नहीं बैठा होगा, तो आप शायद उसे बाहर किसी पहाड़ पर चढ़ते हुए पाएंगे।

<पी> हंस-जॉर्ग श्नडलिट्ज़

द्वारा सभी लेख
  1. पायथन में सूचीबद्ध करने के लिए सीएसवी फ़ाइल विशिष्ट कॉलम निकालें पायथन में सूचीबद्ध करने के लिए सीएसवी फ़ाइल विशिष्ट कॉलम निकालें

    पायथन में सूचीबद्ध करने के लिए विशिष्ट कॉलम के लिए सीएसवी फ़ाइल निकालने के लिए, हम पंडों का उपयोग कर सकते हैं read_csv() विधि। कदम उन स्तंभों की सूची बनाएं जिन्हें निकाला जाना है। read_csv() Use का उपयोग करें csv फ़ाइल को डेटा फ़्रेम में निकालने की विधि। निकाले गए डेटा को प्रिंट करें। प

  1. Android में कोड का उपयोग करके ImageView का मार्जिन कैसे सेट करें? Android में कोड का उपयोग करके ImageView का मार्जिन कैसे सेट करें?

    यह उदाहरण दर्शाता है कि मैं एंड्रॉइड में कोड का उपयोग करके ImageView का मार्जिन कैसे सेट करूं। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।

  1. एंड्रॉइड में टोस्ट कैसे प्रदर्शित करें? एंड्रॉइड में टोस्ट कैसे प्रदर्शित करें?

    यह उदाहरण दर्शाता है कि Android में टोस्ट कैसे प्रदर्शित किया जाता है। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल rArr पर जाएं; नया प्रोजेक्ट और नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें चरण 3 - निम्न कोड को sr