Routes और Params
HTTP संभालना
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 पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Sinatra की मूल बातें
- Routes और Params
- JSON APIs
- Middleware और Rack