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

रेल्स में फ्लैश मैसेजेस मास्टर करें: एक पूर्ण मार्गदर्शिका

फ्लैश मैसेजेस क्या हैं?

एक फ्लैश मैसेज आपके रेल्स एप्लिकेशन के उपयोगकर्ताओं के साथ जानकारी संवाद करने का एक तरीका है ताकि वे जान सकें कि उनके कार्यों के परिणामस्वरूप क्या होता है।

उदाहरण संदेश:

  • "पासवर्ड सही ढंग से बदला गया" (पुष्टि)
  • "उपयोगकर्ता नहीं मिला" (त्रुटि)

आप इन फ्लैश मैसेजेस को अपने कंट्रोलर्स में सेट करते हैं, फिर उन्हें अपने व्यूज में रेंडर करते हैं। आपके उपयोगकर्ता तब तदनुसार कार्य कर सकते हैं।

आइए सीखें कि यह वास्तव में कैसे काम करता है!

फ्लैश मैसेजेस का उपयोग कैसे करें

आप इन अधिसूचना संदेशों के साथ flash हेल्पर मेथड का उपयोग करके काम कर सकते हैं।

यह रूबी हैश की तरह बहुत व्यवहार करता है।

फ्लैश ऑब्जेक्ट में keys, any? या each जैसे मेथड्स होते हैं और आप [] के साथ किसी विशेष संदेश तक पहुंच सकते हैं।

आप किस प्रकार के फ्लैश मैसेज सेट कर सकते हैं?

डिफ़ॉल्ट रूप से आपके पास हैं:

  • notice
  • alert

यहां इसका उपयोग करने का एक उदाहरण है:

 flash.alert = "User not found." 

या यदि आप पसंद करते हैं:

 flash[:alert] = "User not found." 

(केवल शैली का अंतर।)

आप इस कोड का उपयोग अपने कंट्रोलर एक्शन्स में कर सकते हैं, जैसे index, create, new, आदि।

एक और तरीका यह है:

 redirect_to :books_path, notice: "Book not found" 

यह आपको रीडायरेक्ट करने और एक ही चरण में फ्लैश मैसेज बनाने की अनुमति देता है।

अच्छा!

Alert बनाम Notice

जहां तक मुझे समझ में आता है, यह वास्तव में मायने नहीं रखता कि आप alert या notice का उपयोग करते हैं।

उसका उपयोग करें जो आपकी स्थिति के लिए अधिक स्वाभाविक लगता है।

मैं alert को त्रुटि संदेश के रूप में और notice को पुष्टि संदेश के रूप में सोचना पसंद करता हूं।

उन्हें अलग करने से आपको उन्हें अलग ढंग से स्टाइल करने में मदद मिलती है।

उदाहरण के लिए:

आप अलर्ट्स को लाल और नोटिस को हरे रंग में दिखा सकते हैं।

add_flash_types कंट्रोलर मेथड का उपयोग करके अपने स्वयं के फ्लैश प्रकार बनाना भी संभव है।

इस तरह:

 class ApplicationController add_flash_types :info, :error, :warning end 

मैं चीजों को सरल रखना पसंद करता हूं, इसलिए मैं बिल्ट-इन प्रकारों के साथ रहता हूं 🙂

फ्लैश मैसेजेस रेंडर करना

फ्लैश मैसेजेस स्वचालित रूप से नहीं दिखाए जाते हैं।

आपको उन्हें अपने व्यूज में से एक के अंदर रेंडर करना होगा ताकि उपयोगकर्ता उन्हें देख सकें।

इसे अपने एप्लिकेशन लेआउट में जोड़ने पर विचार करें।

यहां एक कोड उदाहरण है:

 <% flash.each do |type, msg| %> <%= msg %> <% end %> 

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

याद रखें:

एक बार जब आप एक संदेश रेंडर करते हैं तो यह flash से हटा दिया जाएगा, इसलिए इसे फिर से नहीं दिखाया जाएगा।

अपने नोटिस और अलर्ट संदेशों को स्टाइल करना

फ्लैश मैसेजेस का कोई बिल्ट-इन डिज़ाइन या स्टाइल नहीं है।

समाधान?

यदि आप बूटस्ट्रैप का उपयोग कर रहे हैं, तो आप फ्लैश मैसेजेस को अच्छा दिखाने के लिए "alert alert-info" CSS क्लास का उपयोग कर सकते हैं।

उदाहरण:

 <% flash.each do |type, msg| %> <%= msg %> <% end %> 

यह ऐसा दिखता है:

रेल्स में फ्लैश मैसेजेस मास्टर करें: एक पूर्ण मार्गदर्शिका

यदि आप बूटस्ट्रैप का उपयोग नहीं कर रहे हैं, तो आप इसे जैसा चाहें वैसा दिखाने के लिए अपना खुद का CSS लिख सकते हैं।

फ्लैश मैसेजेस कब रेंडर किए जाते हैं?

फ्लैश मैसेजेस केवल आपके अगले कंट्रोलर एक्शन पर हटाए जाते हैं, उन्हें प्रदर्शित करने के बाद।

निहितार्थ:

  • यदि आप redirect_to करते हैं, फिर flash मैसेज रेंडर करते हैं, यह अच्छा है
  • यदि आप redirect_to करते हैं और संदेश नहीं रेंडर करते, तो संदेश flash हैश में बना रहेगा
  • यदि आप उसी एक्शन पर render करते हैं जिस पर आप flash मैसेज सेट कर रहे हैं, तो वह flash मैसेज उपलब्ध होगा, लेकिन नहीं हटाया जाएगा इसलिए यह बना रहेगा और संभावित रूप से दो बार दिखाया जाएगा

तो...

क्या होगा यदि आप वर्तमान एक्शन के लिए फ्लैश मैसेज सेट करना चाहते हैं?

यहीं flash.now आता है!

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

 def index @books = Book.all flash.now[:notice] = "We have exactly #{@books.size} books available." end 

यह index व्यू को रेंडर करेगा।

notice मैसेज दिखाया जाएगा और flash से हटा दिया जाएगा ताकि यह दो बार न दिखाया जाए।

दूसरे शब्दों में:

आपको केवल flash.now का उपयोग करने की आवश्यकता है यदि आप रीडायरेक्ट करने के बजाय render करने जा रहे हैं।

सारांश

आपने रेल्स में फ्लैश मैसेजेस के बारे में सीखा और उनका सही उपयोग कैसे करें!

बात दें, फ्लैश मैसेजेस वैलिडेशन त्रुटियों के समान नहीं हैं। वैलिडेशन मॉडल ऑब्जेक्ट से जुड़े होते हैं, और आप इन वैलिडेशन संदेशों को errors मेथड से एक्सेस करते हैं, जैसे @user.errors।

अब कुछ कोड लिखकर इसे अभ्यास में लाने की आपकी बारी है।

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


  1. अपने फोन पर फ्लैश SMS अलर्ट कैसे बंद करें अपने फोन पर फ्लैश SMS अलर्ट कैसे बंद करें

    संचार का रूप हर दिन बदल रहा है। एसएमएस संदेश, जिन्होंने पत्रों और पोस्टकार्ड्स की जगह ली, अब व्हाट्सएप और टेलीग्राम जैसे एप्लिकेशन द्वारा प्रतिस्थापित किए जा रहे हैं। एसएमएस संदेश संचार का एक त्वरित तरीका थे। हालांकि, नेटवर्क ऑपरेटर्स द्वारा विज्ञापनों और ऑफ़र को पुश करने के लिए फ्लैश संदेशों का भी

  1. एक्सेल फ्लैश फिल मास्टर करें: 7 सरल उदाहरण और चरण-दर-चरण गाइड एक्सेल फ्लैश फिल मास्टर करें: 7 सरल उदाहरण और चरण-दर-चरण गाइड

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

  1. USB फ्लैश ड्राइव को विंडोज़ में वर्चुअल RAM में बदलें USB फ्लैश ड्राइव को विंडोज़ में वर्चुअल RAM में बदलें

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