LoginSignup
1
2

More than 3 years have passed since last update.

ストロングパラメータ(自分用メモ)

Last updated at Posted at 2020-06-29
1 / 2

rails学習中に突如現れた「ストロングパラメータ」。パワーワード感のあるこの概念を、かなり自己流の解釈で書き留めておきます。
以下該当コード。

strpmt.png

20~22行目
Tweet.create「Tweetモデルのテーブルに情報入れて保存するやで。内容は任せるわ。tweet_params、まとめといて」
tweet_params「はい!」

24~27行目
tweet_params「リクエスト側から受け取ったデータ(params)で、保存するのどれ?」

require「tweetモデルの情報ください」
permit「中身チェックするから待って」

name「nameです」
permit「通れ」

image「imageです」
permit「通れ」

text「textです」
permit「通れ」

email「emailです」
permit「帰れ!」
email「……」

permit「この3つあげる(:name, :image, :text)」
require「ありがとうございます。tweet_paramsのカバンに入れておきましょう」

tweet_params「できました!」
Tweet.create「サンキュ。テーブルにしまっとくわ。」

こんなイメージ。間違ってたら指摘お願いします

追記

requireメソッドって何者?なんで必要なの?

・もしもrequireメソッドがいなかったら
tweet_params「フォームから来たデータください!」

permit「……」

tweet_params「あれ?」

permit「モデル、指定してくれないと仕事できない」

tweet_params「えぇ……」

そもそも、paramsの中にはモデルが付与されています。

form_with.png

一番上の行、model: @tweet のところがそれ。
フォームに情報が入力された時点で、tweetモデルという入れ物のなかに、それぞれ値がぶちこまれます。
このモデルをキーで指定するのがrequireメソッドの役目。

require「tweetモデルという入れ物を探します」
permit「じゃあその入れ物の中から必要な情報だけ持ってきます」
tweet_params「ありがとうございます。その情報を僕が持ち運びます。しかもプライベートメソッドで記述しているので内容は僕しか知りません」

こうして、いつでも呼び出せるtweet_params君が出来上がります。めでたしめでたし。

1
2
0

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
1
2