LoginSignup
16
7

More than 1 year has passed since last update.

Railsで出てくるparams[:id]ってなんだ?paramsについて深く理解してみる

Last updated at Posted at 2021-10-09

はじめに

どうも、未経験からエンジニア転職を目指しているもきおです。

Ruby on Railsを学習しているとよくコントローラーにおいてparamsってやつが出てきますよね?
例としてはこんな感じ

users_controller.rb
def show
  @user = User.find(params[:id])
end

でもshowの他にeditとかcreateとかでも出てきてしかも記載の仕方がちょくちょく変わっている。
自分自身もとりあえず見様見真似でnewの時はこの記載、showはこの記載みたいな感じで記載してまあエラー起きず動いたら満足って感じでコードを書いてました。

今回はparamsについて理解を深めたのでただコピペでなくちゃんと理解をした上でparamsを使用できるようこの記事に書き記しておきます。

※createに関してのparamsの記載は後日別記事にて記載してます。

paramsってなんぞ?

paramsとは送られてきた値を受け取るためのメソッドのことです。っていっても分からないので例を見てみましょう。

スクリーンショット 2021-10-09 7.55.17.png
ユーザー一覧はこんな感じのURLになっています。URLの最後がusersとなってますね

スクリーンショット 2021-10-09 7.55.49.png
ユーザー一覧で一番上のid:1のkkkkというユーザーの詳細画面(Show)を押すと

スクリーンショット 2021-10-09 7.57.25.png
するとURLの最後に/1が追加されました。

スクリーンショット 2021-10-09 8.01.52.png
ここでターミナルを見てみると黄色い枠にidに1が代入されている事がわかります。
このようにparamsは送られて来た値を受け取る事ができます。

users_controller.rb
def show
  @user = User.find(params[:id])
end

このparamsにおいてユーザーの:idを取得している事がわかります。
これはidに紐ずくユーザー情報を全て取って来ているので次のような事もできます。

View index.htm.erb
スクリーンショット 2021-10-10 5.42.57.png
今までこのような記載だったのを
スクリーンショット 2021-10-10 5.41.38.png
nameをキーとしてユーザーネームも渡してあげます。

スクリーンショット 2021-10-09 8.24.24.png
するとidの後に名前も挿入されることが分かります。少しparamsが理解できてきたのではないかなと思います。

あとがき

今回でparamsの理解を少し深める事ができました。
この記事が少しでも良いと感じていただけましたらLGTMポチっとしていただけると幸いです。

16
7
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
7