Ruby Academy · पाठ

Routes और Params

HTTP संभालना

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

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

HTTP अनुरोध सँभालना

वेब अनुप्रयोग मार्गों से मिलान करके और पैरामीटरों को पढ़कर अनुरोधों का उत्तर देते हैं।

  • पथ खंड गतिशील हो सकते हैं
  • क्वेरी स्ट्रिंग अतिरिक्त डेटा ले जाती हैं
  • फ़ॉर्म बॉडी भेजे गए फ़ील्ड ले जाती हैं

सिनात्रा इन सभी को params हैश के माध्यम से उपलब्ध कराता है।

require 'sinatra'

get '/echo' do
  params['msg'].to_s
end

नामित मार्ग पैरामीटर

पथ में कोलन वाला भाग एक नामित पैरामीटर परिभाषित करता है, जो पथ के एक खंड को ग्रहण करता है।

  • /users/:id, /users/42 से मेल खाता है
  • ग्रहण किया गया मान params['id'] में दिखाई देता है
require 'sinatra'

get '/users/:id' do
  "User ID is #{params['id']}"
end

एकाधिक पैरामीटर

किसी मार्ग में कई नामित पैरामीटर हो सकते हैं।

  • कोलन वाला प्रत्येक खंड params में एक कुंजी बन जाता है
  • पथ में क्रम का पहुँच पर कोई प्रभाव नहीं पड़ता
require 'sinatra'

get '/posts/:year/:month' do
  "Posts from #{params['month']}/#{params['year']}"
end

क्वेरी स्ट्रिंग पैरामीटर

? के बाद के क्वेरी स्ट्रिंग मान भी params में पहुँचते हैं।

  • /search?q=ruby से params['q'] == 'ruby' मिलता है
  • कई युग्मों को & से अलग किया जाता है
require 'sinatra'

get '/search' do
  "Searching for: #{params['q']}"
end

पैरामीटरों के साथ हैश के रूप में काम करना

params ऑब्जेक्ट रूबी के हैश जैसा व्यवहार करता है। साधारण हैश के साथ अभ्यास करने से ये तरीके स्पष्ट हो जाते हैं।

  • सुरक्षा के लिए डिफ़ॉल्ट मान के साथ fetch का उपयोग करें
  • परंपरा के अनुसार कुंजियाँ स्ट्रिंग होती हैं
params = { 'name' => 'Ada', 'lang' => 'Ruby' }

puts params['name']
puts params.fetch('age', 'unknown')

POST के साथ फ़ॉर्म डेटा

post अनुरोधों में भेजे गए फ़ॉर्म फ़ील्ड भी params में दिखाई देते हैं।

  • सिनात्रा अनुरोध की बॉडी को अपने-आप पार्स करता है
  • पहुँच का तरीका क्वेरी पैरामीटरों जैसा ही होता है
require 'sinatra'

post '/signup' do
  "Welcome, #{params['username']}"
end

स्प्लैट पैरामीटर

स्प्लैट (*) कितने भी वर्णों से मेल खाता है और उन्हें params['splat'] सरणी में रखता है।

  • /files/* पथ के शेष भाग को ग्रहण करता है
  • कई स्प्लैट से सरणी में कई प्रविष्टियाँ बनती हैं
require 'sinatra'

get '/files/*' do
  "Path: #{params['splat'].first}"
end

वैकल्पिक और रेगुलर एक्सप्रेशन वाले मार्ग

सटीक मिलान के लिए मार्गों में रेगुलर एक्सप्रेशन का उपयोग किया जा सकता है।

  • ग्रहण किए गए मान params['captures'] में उपलब्ध होते हैं
  • केवल संख्यात्मक आईडी जैसी पाबंदियों के लिए उपयोगी
require 'sinatra'

get %r{/item/(\d+)} do
  "Item #{params['captures'].first}"
end

पैरामीटरों का सत्यापन

आने वाले पैरामीटरों का हमेशा सत्यापन और रूपांतरण करें, क्योंकि वे स्ट्रिंग के रूप में आते हैं।

  • संख्याओं के लिए to_i या Integer() का उपयोग करें
  • अनुपस्थित आवश्यक मानों को स्पष्ट त्रुटि के साथ अस्वीकार करें
def parse_id(raw)
  id = Integer(raw)
  raise 'must be positive' if id <= 0
  id
end

puts parse_id('42')

डिफ़ॉल्ट मान

वैकल्पिक पैरामीटरों के लिए उचित डिफ़ॉल्ट मान दें, ताकि शून्य मान से होने वाली त्रुटियों से बचा जा सके।

  • params.fetch('page', '1')
  • सुरक्षित पृष्ठांकन के लिए इसे रूपांतरण के साथ मिलाएँ
params = { 'page' => nil }
page = (params['page'] || '1').to_i
puts "Page: #{page}"

पुनर्निर्देशन

क्लाइंट को किसी अन्य URL पर भेजने के लिए redirect का उपयोग करें।

  • डिफ़ॉल्ट रूप से 302 स्थिति भेजता है
  • सफल फ़ॉर्म सबमिशन के बाद सामान्यतः उपयोग किया जाता है
require 'sinatra'

post '/login' do
  redirect '/dashboard'
end

त्वरित जाँच

मार्गों और पैरामीटरों के बारे में अपनी जानकारी जाँचें।

पुनरावलोकन

आपने सीखा कि सिनात्रा इनपुट सँभालता है:

  • नामित पैरामीटरों के लिए पथ में :name का उपयोग किया जाता है
  • क्वेरी स्ट्रिंग और फ़ॉर्म फ़ील्ड भी params में मान भरते हैं
  • स्प्लैट और रेगुलर एक्सप्रेशन वाले मार्ग लचीले पथ ग्रहण करते हैं
  • स्ट्रिंग पैरामीटरों का हमेशा सत्यापन और रूपांतरण करें
  • क्लाइंट को अलग-अलग URL के बीच भेजने के लिए redirect का उपयोग करें

अब आप संरचित JSON प्रतिक्रियाएँ लौटाएँगे।

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Sinatra की मूल बातें
  2. Routes और Params
  3. JSON APIs
  4. Middleware और Rack
← Ruby Academy पर वापस जाएँ