Ruby Academy · पाठ

Controllers और Actions

Requests संभालना

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

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

नियंत्रक क्या होता है

नियंत्रक मार्ग-निर्धारक से अनुरोध प्राप्त करता है, काम करता है और तय करता है कि वापस क्या भेजना है। यह मॉडल और दृश्य के बीच समन्वयक होता है।

  • नियंत्रक app/controllers में रहते हैं।
  • वे ApplicationController से विरासत लेते हैं।
  • हर सार्वजनिक विधि एक क्रिया होती है।

नियंत्रक परिभाषित करना

नियंत्रक एक ऐसा वर्ग होता है जिसका अंत Controller पर होता है। परंपरा के अनुसार ArticlesController, articles संसाधन के मार्ग सँभालता है।

class ArticlesController < ApplicationController
  def index
    @articles = Article.all
  end
end

क्रियाएँ मार्गों से जुड़ती हैं

सातों REST मार्गों में से हर एक संबंधित क्रिया को बुलाता है। मार्ग-निर्धारक GET /articles को index, GET /articles/1 को show और इसी तरह अन्य मार्गों को भेजता है। परंपरा के अनुसार क्रियाओं के नाम रखने से सब कुछ अपने-आप जुड़ा रहता है।

params हैश

अनुरोध का डेटा params में आता है। यह हैश जैसा ऑब्जेक्ट होता है, जिसमें मार्ग के खंड, क्वेरी स्ट्रिंग और प्रपत्र के क्षेत्र रहते हैं। /articles/5 के लिए params[:id] का मान "5" होता है।

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

इंस्टेंस चरों से दृश्य तक

नियंत्रक इंस्टेंस चरों (@ उपसर्ग) के माध्यम से दृश्यों को डेटा देते हैं। क्रिया में निर्धारित कोई भी @variable संबंधित दृश्य टेम्पलेट में दिखाई देता है।

def index
  @articles = Article.all
  # @articles is available in index.html.erb
end

index और show लागू करना

पढ़ने वाली क्रियाएँ सरल होती हैं: index एक संग्रह लोड करता है और show आईडी के आधार पर एक रिकॉर्ड लोड करता है। इसके बाद वे अपने डिफ़ॉल्ट टेम्पलेट प्रस्तुत करते हैं।

class ArticlesController < ApplicationController
  def index
    @articles = Article.all
  end

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

create लागू करना

create क्रिया भेजे गए डेटा से एक रिकॉर्ड बनाती है और उसे सहेजती है। सफलता पर यह पुनर्निर्देशित करती है; विफलता पर प्रपत्र फिर से दिखाती है, ताकि उपयोगकर्ता त्रुटियाँ ठीक कर सके।

def create
  @article = Article.new(article_params)
  if @article.save
    redirect_to @article
  else
    render :new, status: :unprocessable_entity
  end
end

redirect_to बनाम render

दो बहुत अलग प्रतिक्रियाएँ:

  • redirect_to ब्राउज़र को किसी दूसरे URL पर नया अनुरोध करने के लिए कहता है।
  • render वर्तमान अनुरोध के लिए सीधे एक दृश्य लौटाता है।

सफल लेखन के बाद पुनर्निर्देशित करें; त्रुटियों के साथ प्रपत्र फिर से दिखाने के लिए दृश्य प्रस्तुत करें।

क्रियाओं से पहले

before_action चुनी हुई क्रियाओं से पहले साझा प्रारंभिक काम करता है, जिससे दोहराव कम होता है। इसका सामान्य उपयोग show, edit, update और destroy के लिए आवश्यक रिकॉर्ड लोड करना है।

class ArticlesController < ApplicationController
  before_action :set_article, only: [:show, :edit, :update, :destroy]

  private

  def set_article
    @article = Article.find(params[:id])
  end
end

फ़िल्टर और प्रमाणीकरण

before_action नियम भी लागू करता है। before_action :require_login जैसा सुरक्षा-जाँच नियम redirect_to login_path कर सकता है और यदि उपयोगकर्ता ने साइन इन नहीं किया है तो क्रिया को रोक सकता है। इससे एक ही बार में पूरे नियंत्रकों की सुरक्षा की जा सकती है।

before_action :require_login

private

def require_login
  redirect_to login_path unless current_user
end

अनुपलब्ध रिकॉर्ड सँभालना

जब find को कोई रिकॉर्ड नहीं मिलता, तो वह RecordNotFound उठाता है, जिसे Rails उत्पादन परिवेश में 404 में बदल देता है। मैत्रीपूर्ण पृष्ठ दिखाने के लिए आप rescue_from की मदद से इसे अनुकूलित कर सकते हैं।

rescue_from ActiveRecord::RecordNotFound do
  redirect_to articles_path, alert: "Not found"
end

त्वरित जाँच

नियंत्रकों की अपनी समझ जाँचें।

पुनरावलोकन: नियंत्रक और क्रियाएँ

आपने सीखा कि नियंत्रक अनुरोधों को कैसे सँभालते हैं:

  • परंपरा के अनुसार क्रियाएँ मार्गों से जुड़ती हैं।
  • params अनुरोध का डेटा रखता है; @variables दृश्य तक पहुँचते हैं।
  • create सहेजने के बाद पुनर्निर्देशित करता है या दृश्य फिर से प्रस्तुत करता है।
  • redirect_to और render के उद्देश्य अलग-अलग हैं।
  • before_action प्रारंभिक काम साझा करता है और प्रमाणीकरण लागू करता है।

अब हम सशक्त पैरामीटरों की मदद से सामूहिक मान-निर्धारण को सुरक्षित रखेंगे।

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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