見出し画像

0820 プログラミングRuby on Rails2周目

!注意!
本記事はプログラミングスクールに通うプログラミング初心者の私が、学んだことを日記として記録するための記事です。
有益な情報は含まれておりませんので、ご注意ください。

<< データ保存の流れ >>

①入力内容を受け取る
ユーザーがフォームに入力した内容を保存するためには、それを受け取る仕組みが必要です。Railsではparamsというメソッドがその機能を担っていますので、詳しく見ていきましょう。

paramsとは
paramsとは、ユーザーが入力した内容などを取得することができるメソッドです。実行した結果はハッシュ形式で返されます。
ハッシュの、キーにあたる「name」「image」「text」は、フォームを作成する際のname属性で指定したものです。必ずデータベースのカラム名と同じになるように設定します。

ストロングパラメータを使って保存を許可する
ストロングパラメータは、事前に許可したデータのみ保存ができるようにして安全性を高める仕組みです。具体的にはpermitと言うメソッドを使用します。

params.permit(:name, :image, :text)


このようにparamsに対してpermitメソッドを使用します。その時に、保存したいパラメータを引数で指定します。
カラム名の先頭に「:(コロン)」をつけてシンボルにしたものを使用します。

このようなストロングパラメータ用のメソッドの名称は、「リソース名」+「_params」で「tweet_params」のようにつけるのが慣例です。

③モデルに対してDBへの保存を依頼する
permit済みのデータを保存するためにモデルに対して保存を依頼します。
保存するためにはcreateメソッドを使用します。

■MEMO
createメソッドを実行すると、tweet_paramsを引数としたメソッドが実行され、ストロングパラメータ用メソッドて定義したハッシュが許可済みのものとして返ってくる。この内容を元に保存が行われる。

createメソッド呼び出す
→createメソッドは引数にtweet_paramsを引数としてもっている
→tweet_paramsはストロングパラメータとして保存できる要素を制限している
→つまりcreateメソッドで保存できる要素は制限されている

この記事が参加している募集

習慣にしていること

このたびは記事を読んでいただき、ありがとうございます。いただいたサポートはカフェでの勉強代や書籍購入費として、大切に使わせていただきます🌷