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

रेल हेल्पर्स का उपयोग कैसे करें (पूरी गाइड)

रेल में सहायक क्या हैं?

एक सहायक एक विधि है जो (ज्यादातर) आपके रेल विचारों में पुन:प्रयोज्य कोड साझा करने के लिए उपयोग की जाती है। रेल अंतर्निहित सहायक विधियों के एक सेट के साथ आती है।

इन अंतर्निहित सहायकों में से एक है time_ago_in_words

यहां एक उदाहरण दिया गया है :

time_ago_in_words(Time.now)
# "less than a minute"

time_ago_in_words(Time.now + 60)
# "1 minute"

time_ago_in_words(Time.now + 600)
# "10 minutes"

जब भी आप इस विशिष्ट प्रारूप में समय प्रदर्शित करना चाहते हैं तो यह विधि सहायक होती है।

एक और रेल व्यू हेल्पर है number_to_human

उदाहरण :

number_to_human(10_000)
# "10 Thousand"

यह बहुत अच्छा है जब आप एक नंबर लेना चाहते हैं और उसे प्रिंट करना चाहते हैं जैसे आप इसे पढ़ेंगे, जो इसे और अधिक मानवीय महसूस कराता है।

रूबी ऑन रेल्स के दस्तावेज़ीकरण में आपको और सहायक मिल सकते हैं।

लेकिन क्या आप जानते हैं कि आप अपना खुद का लिख ​​सकते हैं?

अपनी खुद की सहायक विधियों को लिखना

यदि आप कस्टम सहायक विधियों को लिखना चाह रहे हैं, तो सही निर्देशिका पथ app/helpers . है ।

आप अपने सहायकों को सहायक मॉड्यूल . के अंदर लिखते हैं ।

प्रत्येक रेल एप्लिकेशन डिफ़ॉल्ट रूप से बेस हेल्पर मॉड्यूल के साथ आता है, इसे ApplicationHelper कहा जाता है ।

यहां आप अपनी सहायक विधियां जोड़ सकते हैं।

ये विधियां आपके सभी विचारों के लिए स्वचालित रूप से उपलब्ध हो जाती हैं। बाद में आप सीखेंगे कि नियंत्रकों में उनका उपयोग कैसे करें और यह एक बुरा विचार क्यों हो सकता है।

आप अपने सभी हेल्पर्स को ApplicationHelper . में लिख सकते हैं ।

लेकिन एक और विकल्प है...

आप सहायक मॉड्यूल बना सकते हैं ताकि आप अपने तरीकों को बेहतर ढंग से व्यवस्थित कर सकें।

निर्देश :

  • app/helpers के अंतर्गत एक नई फ़ाइल बनाएं
  • इसे कुछ इस तरह नाम दें user_helper.rb
  • एक नया मॉड्यूल जोड़ें जो फ़ाइल नाम से मेल खाता हो

उदाहरण :

# app/helpers/user_helper.rb

module UserHelper
  def format_name(user)
    if user.gender == "M"
      "Mr. #{user.name}"
    else
      "Ms. #{user.name}"
    end
  end
end

इस कोड का उपयोग किसी व्यक्ति को उनके लिंग के आधार पर औपचारिक तरीके से संबोधित करने के लिए किया जा सकता है।

मुख्य लाभ?

जब आपको इसकी आवश्यकता हो और जब आपको कोड बदलने की आवश्यकता हो तो आपको इस तर्क को अन्य विचारों में दोहराने की आवश्यकता नहीं है ... इसे केवल एक ही स्थान पर बदलना है।

बहुत बढ़िया!

अपने नए हेल्पर मॉड्यूल का उपयोग करना

आप अपने विचारों में अपनी सहायक विधियों का उपयोग कर सकते हैं।

इसे पसंद करें :

<%= format_name(@user) %>

आसान, है ना?

यदि आप विचारों के बाहर सहायकों का उपयोग करना चाहते हैं तो आपको कुछ और चाहिए।

नियंत्रकों के सहायकों का उपयोग कैसे करें

नियंत्रक क्रियाओं से सहायक विधियों का उपयोग करना संभव है, हालांकि यह बहुत सामान्य नहीं है।

रेल 5 से पहले, आपको हेल्पर मॉड्यूल को शामिल करना था।

नए संस्करणों में, आप अपने नियंत्रक में सहायकों का उपयोग helpers . के साथ कर सकते हैं (बहुवचन) वस्तु।

इसे पसंद करें :

class UsersController
  def index
    helpers.time_ago_in_words(Time.now)
  end
end

इस तरह आप अपने कंट्रोलर से हेल्पर्स का इस्तेमाल कर सकते हैं। लेकिन ऐसा करने से पहले दो बार सोचें क्योंकि यह एक डिज़ाइन समस्या हो सकती है।

इसके बजाय एक सादे रूबी ऑब्जेक्ट का उपयोग करने पर विचार करें।

रेल कंसोल के साथ मज़ा

मुझे तरीकों को आजमाने और चीजों के साथ खेलने के लिए रेल कंसोल (आपके रेल ऐप लोड के साथ आईआरबी) का उपयोग करना अच्छा लगता है।

सहायक शामिल हैं!

आप कंसोल से हेल्पर्स का उपयोग helper.method_name . के साथ कर सकते हैं ।

"सहायक" के विलक्षण रूप पर ध्यान दें ताकि आपको कोई त्रुटि संदेश न मिले। और याद रखें कि कंसोल स्वचालित रूप से कोड परिवर्तन को पुनः लोड नहीं करता है।

रेल सहायकों को देखने के लिए सर्वोत्तम अभ्यास

आपको एक सहायक विधि कब बनानी चाहिए?

जब भी आपके पास तर्क होता है जो HTML के बिट्स उत्पन्न करता है।

आमतौर पर, यह दो श्रेणियों में से एक में आता है, एक स्ट्रिंग स्वरूपण है और दूसरा सशर्त पृष्ठ तत्व है।

एक और युक्ति…

यदि आप लिखना चाहते हैं कि अच्छे सहायक किसी भी आवृत्ति चर का उपयोग नहीं करते हैं, तो वे आपके वर्तमान दृश्य में उपलब्ध हो सकते हैं, लेकिन वे किसी अन्य दृश्य में नहीं हो सकते हैं।

इसके परिणामस्वरूप वेरिएबल गुम होने के कारण त्रुटि होगी।

समाधान?

पैरामीटर का उपयोग करें, ताकि आपकी विधि के लिए आवश्यक कोई भी डेटा स्पष्ट और स्पष्ट हो ।

# wrong way

def eat_healthy
  @fruit.eat
end

# do this instead

def eat_healthy(fruit)
  fruit.eat
end

मेरा अंतिम सुझाव है कि आप अपने हेल्पर्स को मॉड्यूल में विभाजित करें, जहां प्रत्येक मॉड्यूल का नाम स्पष्ट रूप से बताता है कि इसमें किस तरह के तरीके शामिल हैं।

हालांकि :

यह डुप्लिकेट विधि नामों में मदद नहीं करेगा, जिसके परिणामस्वरूप त्रुटियां और भ्रम हो सकते हैं।

आपके सभी सहायकों के अद्वितीय नाम होने चाहिए ।

एक विकल्प के रूप में, प्रस्तुतकर्ता वस्तुओं का उपयोग करने का प्रयास करें, जैसा कि इस गाइड में बताया गया है।

सारांश

आपने रेल में सहायकों के बारे में सीखा है! उपयोगिता विधियों का एक सेट जिसका उपयोग आप अपने विचारों में जटिल तर्क को स्वरूपित करने और संभालने के लिए कर सकते हैं।

अब अपने स्वयं के सहायक बनाने का समय आ गया है।

पढ़ने के लिए धन्यवाद


  1. Google फ़ॉर्म कैसे बनाएं:एक संपूर्ण मार्गदर्शिका

    Google फ़ॉर्म एक ऐसा ऐप है जिसकी अनुशंसा करने के कई कारण हैं। इसका उपयोग करना आसान है, साझा करना आसान है, और इसे एक साफ इंटरफ़ेस मिला है। इसकी सबसे अच्छी विशेषताओं में प्रमुख यह है कि Google फ़ॉर्म मुफ़्त है। Google खाते वाला कोई भी व्यक्ति Google फ़ॉर्म का उपयोग कर सकता है। यह सर्वेक्षण, प्रश्नोत्

  1. वेबसाइट को कैसे सुरक्षित करें? (पूरी वेबसाइट सुरक्षा गाइड)

    पूरी तरह से रोके जा सकने वाले कारणों से कई हैक होते हैं:समय पर अपडेट न होना, असुरक्षित पासवर्ड, इत्यादि। हम इसके बारे में कैसे जानते हैं? हमने 25000+ हैक की गई साइटों की सहायता की है और वेबसाइट सुरक्षा . के साथ महत्वपूर्ण अनुभव प्राप्त किया है . इस वेबसाइट सुरक्षा आवश्यक मार्गदर्शिका में, हम

  1. आईट्यून्स 12 का उपयोग करने के लिए आवश्यक मार्गदर्शिका - आईट्यून्स 12 का उपयोग कैसे करें

    अपने संगीत, फिल्मों, टीवी शो और अन्य मीडिया को व्यवस्थित करना निश्चित रूप से आसान नहीं है। लेकिन आईट्यून इसकी शक्तिशाली सुविधाओं के साथ आपकी मदद कर सकता है। आप आसानी से अपना संग्रह बना सकते हैं और यह तय कर सकते हैं कि आप कौन सा संगीत सुनना चाहते हैं। आईट्यून्स के साथ आप मैन्युअल रूप से प्लेलिस्ट बना