【パーフェクト Ruby on Rails】を読む - その9
2-3-5 StrongPrameters
想定通りのパラメータかどうかをホワイトリスト方式でチェックする機能です。
- マスアサイメント
データベースに保存されるカラムを一括で指定できる機能 - コントローラーのprivateに記載する
検証ツールなどで想定外の項目を追加して送信された際に、ホワイトリスト以外の人を入店拒否するための機能がストロングパラメータです。
検証ツールを開いて
👨🏻💻< admin: true追加したろ!
🖥< えーと…ホワイトリストに:adminはないよ?そんなパラメータは許可してないで!
👨🏻💻<なんだってー!
2-4 コントローラーとビューの協調とビューテンプレートの基本
2-4-1 レンダリングまでの流れ
app/views/コントローラー名/アクション名.html.erb
class SurfsController < ApplicationController def board end # render記載の省略ができる さらに省略すると def board; end で1行でイケる!
renderとredirect_toの違い
- render 表示させるviewを指定し表示(controllerに遷移する前の値を保持したい場合はrender)
- redirect_to URLをもとにviewを表示。(値を保持しない)
redirect_to @user
というのが出てきた場合 Railsでは()を省略してくれてる+省略に省略を重ねて上のようになっている 本来は↓なので注意redirect_to user_url(@user.id)
ひとこと
ホワイトリストってワードは技術書でよく出てくるから知っておいてね
参照
attr_accessor
https://pikawaka.com/ruby/attr_accessor
ホワイトリスト方式セキュリティの仕組みと効果
https://www.hitachi-solutions-create.co.jp/column/security/white-list-security.html
【Rails】renderとredirect_toの違いと使い分け
https://qiita.com/morikuma709/items/e9146465df2d8a094d78
redirect_to @userが何を省略しているかわかりますか?〜挫折しないRailsチュートリアル7章〜
https://qiita.com/Kawanji01/items/96fff507ed2f75403ecb