読者です 読者をやめる 読者になる 読者になる

考えることをやめたら死ぬ男のブログ

英語ペラペラな僕がHIPHOP、ビジネス、ITなどいろんな話題についてぺちゃくちゃ喋ります。

Ruby on Railsで出てくるStrong parametersっていったい何なんだ

Ruby Ruby on Rails プログラミング

 

たぶんStrong parametersって

ログイン機能とかつけるんだったら

かなり大事なものだと思うので覚書。

 

簡単に言うとどういうものか

こっちのバリューは変えたくないけど、こっちのバリューは変えたいときに使う。

こっちのバリューを変えられると困るんだよなーってときとか。

 

実例

params.require(:user).permit(:email, :password)

Strong parametersはこんな感じの書き方をするんですけど

これは:userが持つ:email、:passwordというキーのバリューだけを

変更することを許しますよーって意味になります。

 

たとえばログイン機能のある投稿サイト(Twitterとか)を作るとして

:email、:password以外にも:user_idとかのキーを作成すると思うんですね。

そのときに:user_idをこちらが意図しない形で変更されると

非常にカオスなことになってしまいます。

f:id:b1840943:20160126195639p:plain

いろんなツッコミあると思いますが

ここはひとつ龍角散といっしょにごくっと飲み込んでください。

 

このケースでuser_idが1の人のuser_idが3に変更されたら

大変なことになるわけですよ。カオスです。

 

サービスを使ってくれてるAさんのプロフィールには

Bさんのツイートが流れてたりとか

かわいい女子高生のアカウントなのに

うさんくさい起業家の情報商材への誘導ツイートとか

流れてたりとかしちゃうかもしれません。

(2つ目の例は現実に起こっているという部分がカオスです)

 

Railsの基本中の基本になってくるStrong parametersが

実はよく理解できてなかったのでとりあえず書いてみました。

 

まとめ

かわいい女の子の写真をプロフィール画像にしている

Twitterのアカウントはだいたいおっさんがやってる