Rails Tutorialの勉強記録 Chapter 10
Ruby on Rails Tutorialの勉強記録.Chapter 10.
この章では,ユーザーの情報を更新する実装を行い,更新できるユーザーは自分自身だけにするためのauthrizationの方法を学びました.また同様に削除の実装もしました.
なるほどとお思ったことを列挙します.
HTTPメソッド
RESTの場合,更新には,HTTPメソッドの`patch`,削除には,`delete`を使いますが,Webブラウザはネイティブに実装されていないので,`post`メソッドで代用します.Railsでは,`<form>`タグの内部に`<input>`タグを埋め込み,疑似的に`patch`を送ったかのように見せます.
form_wtihの魔法
Railsの`form_with`メソッドは,modelと紐づけた場合は自動で`patch`を送るべきか,`post`を送るべきか判断して,`<form>`タグを作成してくれます.これはモデルのオブジェクトの`new_record?`メソッドで,既に存在しているかどうかを判定して判断しています.存在しているならば,更新のため`patch`を送るための仕組みを組み込みます.
`target=_blank`の時にtabnabbingを防ぐ
tabnabbingとは,サイトAからサイトBを別のタブで開く際に,サイトBがサイトAのタブを別のサイトに変更して,フィッシングサイトなど悪意のあるサイトに飛ばす方法である.なぜこれができるかというと,`window.open`で元のサイトのタブ(サイトAのタブ)を制御できる.それを防ぐために`rel=noopener`をつけることで,`window.open`がnullになりtabnabbingが防げる.
`allow_nil`
モデルのオブジェクトを更新の時に`nil`を許す属性を指定できる.
この記事が気に入ったらサポートをしてみませんか?