りゅうじの学習blog

学習したことをアウトプットしていきます。

2021年9月8日 パーフェクト Ruby on Rails

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