😸

SinatraにおけるURLとルーティング、パラメータなどの関係

2023/05/29に公開

URLに引数を含まない場合

app.rb
get '/' do
  "Hello World!!"
end

URL:http://localhost:4567
表示:Hello World!!と表示

URLの引数が定数(hello)の場合

app.rb
get '/hello' do
  "Hello Sinatra!!"
end

URL:http://localhost:4567/hello
表示: Hello Sinatra!!

URLの引数が変数シンボル(:name)の場合

app.rb
get '/hello/:name' do                #受け取りたい値をシンボルで受け取る
  "Hello #{params[:name]}!!"    #params変数を使って展開する
end

URL:http://localhost:4567/hello/Fumi
表示: Hello Fumi!!

URLの引数がブロック変数(name)の場合

app.rb
get '/hello/:name' do |name|
  "Hello #{name}!!"
end

URL:http://localhost:4567/hello/Fumi
表示: Hello Fumi!!

パラメータが2つ以上(first_name, last_name)の場合

app.rb
get '/hello/:first_name/:last_name' do |first_name, last_name|
  "Hello #{first_name} #{last_name}!!"
end

URL:http://localhost:4567/hello/Fumi/Shirasawa
表示: Hello Fumi Shirasawa!!

パラメータをワイルドカード(*:任意の値)で渡す場合

app.rb
get '/hello/*/*' do |a, b|
  "Hello #{a} #{b}!!"
end

URL:http://localhost:4567/hello/aaa/bbb
表示: Hello aaa bbb!!

Discussion