Ruby Academy · leksjon

Ruter og parametere

Håndtere HTTP

Leksjon 2 av 413 trinn

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
end

Navngitte ruteparametere

Et kolon i stien definerer en navngitt parameter som fanger opp et stisegment.

  • /users/:id samsvarer med /users/42
  • Den innfangede verdien vises i params['id']
require 'sinatra'

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

Flere 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']}"
end

Parametere i spørringsstrenger

Verdier i spørringsstrengen etter ? havner også i params.

  • /search?q=ruby gir params['q'] == 'ruby'
  • Flere par skilles med &
require 'sinatra'

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

Arbeide 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 fetch med 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']}"
end

Splat-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}"
end

Valgfrie 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}"
end

Validere parametere

Valider og konverter alltid innkommende params, siden de kommer inn som strenger.

  • Bruk to_i eller Integer() 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'
end

Kjapp sjekk

Test kunnskapene Deres om ruter og params.

Oppsummering

De har lært hvordan Sinatra håndterer inndata:

  • Navngitte params bruker :name i 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 redirect til å flytte klienter mellom URL-er

Deretter skal De returnere strukturerte JSON-svar.

Gratis å komme i gang

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

  1. Grunnleggende Sinatra
  2. Ruter og parametere
  3. JSON-API-er
  4. Middleware og Rack
← Tilbake til Ruby Academy