Ruter og parametere
Håndtere HTTP
Ruter og parametere er en gratis leksjon i Ruby Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Ruby Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Ruby Academy inneholder totalt 4 leksjoner.
Håndtere HTTP-forespørsler
Nettapper svarer på forespørsler ved å finne samsvarende ruter og lese parametere.
- Stisegmenter kan være dynamiske
- Spørringsstrenger inneholder ekstra data
- Skjemainnhold inneholder innsendte felter
Sinatra gjør alt dette tilgjengelig gjennom params-hashen.
require 'sinatra'
get '/echo' do
params['msg'].to_s
endNavngitte ruteparametere
Et kolon i stien definerer en navngitt parameter som fanger opp et stisegment.
/users/:idsamsvarer med/users/42- Den innfangede verdien vises i
params['id']
require 'sinatra'
get '/users/:id' do
"User ID is #{params['id']}"
endFlere parametere
En rute kan ha flere navngitte parametere.
- Hvert kolonsegment blir en nøkkel i
params - Rekkefølgen i stien har ingen betydning for hvordan verdiene hentes
require 'sinatra'
get '/posts/:year/:month' do
"Posts from #{params['month']}/#{params['year']}"
endParametere i spørringsstrenger
Verdier i spørringsstrengen etter ? havner også i params.
/search?q=rubygirparams['q'] == 'ruby'- Flere par skilles med
&
require 'sinatra'
get '/search' do
"Searching for: #{params['q']}"
endArbeide med params som en Hash
Objektet params oppfører seg som en Ruby-hash. Når De øver med en vanlig hash, blir mønstrene tydelige.
- Bruk
fetchmed en standardverdi for sikkerhets skyld - Nøkler er vanligvis strenger
params = { 'name' => 'Ada', 'lang' => 'Ruby' }
puts params['name']
puts params.fetch('age', 'unknown')Skjemadata med POST
For post-forespørsler vises innsendte skjemafelter også i params.
- Sinatra tolker forespørselsinnholdet automatisk
- Samme tilgangsmønster som for spørringsparametere
require 'sinatra'
post '/signup' do
"Welcome, #{params['username']}"
endSplat-parametere
En splat (*) samsvarer med et vilkårlig antall tegn og lagrer dem i matrisen params['splat'].
/files/*fanger opp resten av stien- Flere splat-er gir flere oppføringer i matrisen
require 'sinatra'
get '/files/*' do
"Path: #{params['splat'].first}"
endValgfrie ruter og regex-ruter
Ruter kan bruke regulære uttrykk for presis samsvarskontroll.
- Treffene er tilgjengelige i
params['captures'] - Nyttig for begrensninger som at ID-er bare skal være numeriske
require 'sinatra'
get %r{/item/(\d+)} do
"Item #{params['captures'].first}"
endValidere parametere
Valider og konverter alltid innkommende params, siden de kommer inn som strenger.
- Bruk
to_iellerInteger()for tall - Avvis manglende obligatoriske verdier med en tydelig feilmelding
def parse_id(raw)
id = Integer(raw)
raise 'must be positive' if id <= 0
id
end
puts parse_id('42')Standardverdier
Angi fornuftige standardverdier for valgfrie params for å unngå nil-feil.
params.fetch('page', '1')- Kombiner med konvertering for sikker paginering
params = { 'page' => nil }
page = (params['page'] || '1').to_i
puts "Page: #{page}"Omdirigering
Bruk redirect til å sende klienten til en annen URL.
- Sender status 302 som standard
- Vanlig etter en vellykket innsending av et skjema
require 'sinatra'
post '/login' do
redirect '/dashboard'
endKjapp sjekk
Test kunnskapene Deres om ruter og params.
Oppsummering
De har lært hvordan Sinatra håndterer inndata:
- Navngitte params bruker
:namei stien - Spørringsstrenger og skjemafelter fyller også ut
params - Splat-er og regex-ruter fanger opp fleksible stier
- Valider og konverter alltid params som kommer inn som strenger
- Bruk
redirecttil å flytte klienter mellom URL-er
Deretter skal De returnere strukturerte JSON-svar.
Lær deg Ruby med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 29
- Leksjoner
- 109
Ofte stilte spørsmål
Er leksjonen «Ruter og parametere» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Ruby Academy, inkludert «Ruter og parametere», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Ruby Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Ruter og parametere»?
Håndtere HTTP Du øver på Ruby Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Ruby Academy?
Ingen tidligere erfaring er nødvendig. Ruby Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Ruter og parametere»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Ruby Academy-leksjonen?
Ja. Alle Ruby Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Grunnleggende Sinatra
- Ruter og parametere
- JSON-API-er
- Middleware og Rack