おーしまブログ

プログラミングやってます

<Ruby on Rails> ストロングパラメータ

こんにちは、おーしまです。

 

今日は「ストロングパラメータ」についてです。

 

ストロングパラメータとは、指定したキーを持つパラメータのみを受け取るよう制限したものです。

 

つまり、名前と電話番号のデータを変更したい時に、合わせて住所のデータも送ると、住所のデータまで変更されてしまうので、名前キーと電話番号キーだけを受け取るようにする設定のことです。

 

このストロングパラメータを使用しなかったら、他人のパスワードのデータを送られるとパスワードの内容まで変わってしまうという事が起きてしまうのです。恐ろしい。

 

ストロングパラメータは require と permit を使います。

 

params.require(:モデル名).permit(:キー名 :キー名)

 

で設定できます。

 

 

 

params.require( :ユーザー).permit( :名前 :電話番号 )  的な?

これで、ユーザーの名前と電話番号のデータだけ取り出して保存できます。

 

 

 

requireの後は、モデル名だけでなくキー名でも良いです。

しかし、より細かく制限をかけるため require でモデルを制限し、 permit でキーを制限しています。

 

 

また、このストロングパラメータはプライベートメソッドに記述して呼び出すのが良いでしょう。

 

プライベートメソッドには、クラス外から呼ばれるとエラーを起こすメソッドを隔離したり、繰り返し使用するメソッドを記述しておけて、コードをシンプルにできるなどの利点があります。

 

ここはどこ おれはだれ それに近いものがあんだよ 始めようとした奴らも迷い始めてる 怖がらせないでよ そりゃ甘くはないけど まだまだ 夢見ていい世界なんでしょ {UVERwould「ハイ!問題作」}