Ruby Academy · पाठ

Views और Rendering

Responses लौटाना

पाठ 4, कुल 4 में से13 चरण

Views और Rendering, CoddyKit पर Ruby Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Ruby Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Ruby Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

दृश्य क्या है?

दृश्य एक साँचा है जो क्लाइंट को भेजी जाने वाली प्रतिक्रिया, आमतौर पर HTML, तैयार करता है। यह नियंत्रक द्वारा तैयार किए गए डेटा को एक पृष्ठ में बदल देता है।

  • दृश्य app/views में रहते हैं।
  • उन्हें नियंत्रक के अनुसार समूहित किया जाता है, जैसे app/views/articles।
  • डिफ़ॉल्ट साँचे का नाम क्रिया से मेल खाता है।

परंपरा-आधारित रेंडरिंग

डिफ़ॉल्ट रूप से कोई क्रिया अपने नाम वाले साँचे को रेंडर करती है। ArticlesController की index क्रिया बिना किसी स्पष्ट render कॉल के app/views/articles/index.html.erb को रेंडर करती है।

def index
  @articles = Article.all
  # automatically renders articles/index.html.erb
end

ERB साँचे

डिफ़ॉल्ट साँचा भाषा ERB (एम्बेडेड रूबी) है। इसमें HTML और रूबी को मिलाया जाता है:

  • <%= ... %> कोई मान दिखाता है।
  • <% ... %> बिना कोई परिणाम दिखाए कोड चलाता है।
<h1>Articles</h1>
<% @articles.each do |article| %>
  <p><%= article.title %></p>
<% end %>

विन्यास

विन्यास हर दृश्य को शीर्षलेख, नेविगेशन और पादलेख जैसी साझा संरचना में लपेटता है। डिफ़ॉल्ट app/views/layouts/application.html.erb में <%= yield %> शामिल होता है, जहाँ क्रिया का दृश्य डाला जाता है।

<!-- application.html.erb -->
<html>
  <body>
    <%= yield %>
  </body>
</html>

आंशिक साँचे

आंशिक साँचा एक पुनः उपयोग योग्य साँचा-खंड है, जिसके फ़ाइल-नाम की शुरुआत अंडरस्कोर से होती है। संरचना को दोहराने से बचने के लिए इसे render से रेंडर करें।

<!-- _article.html.erb -->
<p><%= article.title %></p>

<!-- in index.html.erb -->
<%= render "article", article: @article %>

संग्रहों का रेंडरिंग

render को कोई संग्रह देने पर प्रत्येक आइटम के लिए आंशिक साँचा एक बार रेंडर होता है; यह एक प्रचलित संक्षिप्त तरीका है। रेल्स मॉडल से आंशिक साँचे के नाम का अनुमान लगा लेता है।

<%= render @articles %>

<!-- renders _article.html.erb for each article -->

दृश्य-सहायक

रेल्स ऐसे सहायक उपलब्ध कराता है जो HTML को सुरक्षित रूप से बनाते हैं: लिंक के लिए link_to, फ़ॉर्म के लिए form_with और चित्रों के लिए image_tag। ये साँचे को साफ़-सुथरा और एकसमान रखते हैं।

<%= link_to "View", article_path(@article) %>
<%= image_tag "logo.png" %>

अन्य प्रारूपों में प्रतिक्रियाएँ देना

नियंत्रक केवल HTML ही नहीं, बल्कि अन्य प्रतिक्रियाएँ भी लौटा सकते हैं। render json: एपीआई के लिए JSON भेजता है, और respond_to क्लाइंट द्वारा माँगे गए प्रारूप के आधार पर अलग-अलग प्रारूप उपलब्ध कराता है।

def show
  @article = Article.find(params[:id])
  render json: @article
end

एकाधिक प्रारूपों वाले ब्लॉक

एक ही क्रिया में कई प्रारूप सँभालने के लिए respond_to का उपयोग करें। वही क्रिया ब्राउज़र को HTML और एपीआई क्लाइंट को JSON लौटा सकती है।

def show
  @article = Article.find(params[:id])
  respond_to do |format|
    format.html
    format.json { render json: @article }
  end
end

स्थिति कोड

status: के साथ प्रतिक्रिया की HTTP स्थिति निर्धारित करें। सफलतापूर्वक कुछ बनाने के बाद :ok (200), :created (201) और सत्यापन विफल होने पर :unprocessable_entity (422) का उपयोग करें, ताकि क्लाइंट सही प्रतिक्रिया दे सकें।

render :new, status: :unprocessable_entity
render json: @article, status: :created

विशेष वर्णों का रूपांतरण और सुरक्षा

ERB <%= %> के परिणाम को अपने-आप HTML-एस्केप करता है, जिससे उपयोगकर्ता के डेटा से होने वाली क्रॉस-साइट स्क्रिप्टिंग रुकती है। सामग्री पर raw या html_safe से सुरक्षित होने का चिह्न तभी लगाएँ जब आप उस पर पूरा भरोसा करते हों; इनके गलत उपयोग से XSS की सुरक्षा-खामियाँ फिर खुल जाती हैं।

त्वरित जाँच

दृश्यों और रेंडरिंग की अपनी समझ का परीक्षण करें।

पुनरावलोकन: दृश्य और रेंडरिंग

आपने प्रतिक्रियाएँ लौटाना सीखा:

  • परंपरा के अनुसार क्रियाएँ मेल खाते ERB दृश्य को रेंडर करती हैं।
  • विन्यास दृश्यों को लपेटते हैं; आंशिक साँचे खंडों का पुनः उपयोग करते हैं।
  • link_to और form_with जैसे सहायक HTML बनाते हैं।
  • render json: और respond_to एपीआई उपलब्ध कराते हैं; उचित स्थिति कोड निर्धारित करें।
  • ERB XSS को रोकने के लिए परिणाम को एस्केप करता है।

इससे नियंत्रक और मार्ग-निर्धारण पाठ्यक्रम पूरा होता है।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Ruby सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
29
पाठ
109

अक्सर पूछे जाने वाले प्रश्न

क्या “Views और Rendering” पाठ निःशुल्क है?

हाँ — Ruby Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Views और Rendering” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Ruby Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Views और Rendering” में मैं क्या सीखूँगा?

Responses लौटाना आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Ruby Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Ruby Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Ruby Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“Views और Rendering” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Ruby Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Ruby Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Routes और Resources
  2. Controllers और Actions
  3. Strong Parameters
  4. Views और Rendering
← Ruby Academy पर वापस जाएँ