インフラエンジニアbacchiのわかったことまとめ

bacchi.me

Ruby

Sinatraで遊ぼう!リクエスト処理編

更新日:

リクエストされたパラメーターを表示させる

今回はリクエストに入ってきたパラメータを表示させる処理を書いていきます。

例えば「/hello/bacchi」をリクエストすると「hello bacchi」と表示させるのをやってみたいと思います。

パラメータにしたいものは「:name」として、「:」の後に変数名を付けてシンボルにしてください。

パラメーターは paramsハッシュで取得できます。
文字列の中で変数を展開するには「#{name}」とすればOKですね。

なので、「"hello #{params[:name]}"」とすればOKです。

これをやってみましょう。

hello_bacchi

例えば「/hello/ruby」とすると「hello ruby」と表示されますし、
「/hello/sinatra」とすると「hello sinatra」と表示されます。

このようにリクエストで渡ってきたパラメータを使いたいという場合がよくありますので、その扱い方を覚えておいてください。

他にもこれと同じことを違う表現ですることもできるので見ていきましょう。

「params[:name]」といちいち書くのが面倒なときは、ブロックの引数を使って

と指定すると、「params[:name]」を簡単に「n」とすることができます。

このように「/hello/linux」とリクエストすると「hello linux」と表示されますね。

hello_linux

複数のパラメータを表示させる

また、パラメータは 2 つ以上付けることもできます。
それのやり方も見ていきましょう。

例えば

とすると、それぞれに渡されたパラメータが表示されます。

例えば「/hello/taro/yamada」とすると、「hello taro yamada」と表示されます。

hello_taroyamada

なお、パターンにマッチしないと下記のようなにエラーになってしまいます。

sntrerror

パラメータをオプショナルにしたい場合には、後ろに「?」を付ければ OK です。

この場合は「/」があってもなくてもという意味で「\'/hello/:f_name/?:l_name?\'」にしておきましょう。

そうすると、このようにエラーなく、こちらだけ採用されているのが分かるかと思います。

hello_yamada

このようにリクエストのパラメータを表示させるというのはよくやりますので、やり方を覚えておくようにしてください。

Sponsor Link

スポンサーリンク

Sponsor Link

スポンサーリンク

-Ruby
-

Copyright© bacchi.me , 2018 AllRights Reserved.