Rails7.2からブラウザのバージョン保護機能がデフォルトで追加された
Rails7.2からrails newするとApplicationControllerに allow_browser versions: :modern が追加された。
versionsに設定されているハッシュまたは名前付きセットで指定されたバージョンのみが有効化される。 それ以外でアクセスすると406 Not Acceptableが表示される。
:modern で許可されているバージョンはこちら。
https://api.rubyonrails.org/v7.2/classes/ActionController/AllowBrowser/ClassMethods.html#method-i-allow_browser
- Safari 17.2以上
- Chrome 120以上
- Firefox 121以上
- Opera 106以上
もし406が表示されたら console.log(navigator.userAgent) などで現在のバージョンを取得し、この基準に達していないことが確認できる
参考
- Rails7.2でChromeDevToolsのデバイスモードを変更して操作するとエラーが出る[Ruby on Rails] - motohiLog
- https://api.rubyonrails.org/v7.2/classes/ActionController/AllowBrowser/ClassMethods.html#method-i-allow_browser