はじめに
備忘録です。
Ruby on Rails5 学習レッスン III ・URLからidを取得しようを学習中paramsがわからなかったのでそこら辺の知識をまとめます
Q変数paramsがなぜハッシュなのか
A、Ruby on Railsにおけるparamsがハッシュとなる理由は、HTTPリクエストに含まれるクライアントからの情報を扱いやすくするためです。
Webアプリケーションでは、ブラウザからのHTTPリクエストには様々な情報が含まれます。例えば、フォームから送信されたデータ、URL内のクエリ文字列、HTTPヘッダーなどがあります。これらの情報を扱うために、Railsではparamsという変数が使われます。
paramsはリクエストから送られてきた情報を取り出すための手段であり、その情報は通常ハッシュ(Hash)として提供されます。なぜなら、HTTPリクエストに含まれるデータはキーと値のペアの形式で渡されることが多いためです。
情報を受け取る流れ(ルーティングからコントローラ)
例えば、以下のようなURLがあり:http://example.com/posts/1
また、config/routes.rbファイルで次のようにルーティングを設定した場合
get "posts/:id" => "posts#show"
config/routes.rbファイルではURLの「posts/1」のところを「:id」が受け取っている
そしてposts#showを用いてどのコントローラーのどのアクションを関連付けるかを示す。
ここでの"posts#show"とはpostコントローラーのshowアクション見てね、ということを示しています。
情報を受け取る流れ(paramsの役割)
コントローラのアクション内では、ルーティングで設定したURLの「:id」の値を取得することができます。その値はparamsという変数にハッシュとして入っています。
params[:id]とすることで、その値を取得することができます。
params自体がエンジニアがする前から、自動的にルーティングで受け取った「:id」の値を取得していたという事ですね・
終わりに
この備忘録はチャットGPTとprogateの解説を元に作成しました。