2022-01-14 406 Not Acceptable / Railsルーティングでidとして数値のみを受け付ける
406 Not Acceptable - HTTP | MDN
HyperText Transfer Protocol (HTTP) の 406 Not Acceptable クライアントエラーレスポンスコードは、サーバーがリクエストの用意したコンテンツネゴシエーションヘッダーで定義された受付可能な値に一致するレスポンスを生成できず、サーバーが既定の表現方法で提供することを望まないことを表します。
用意されるコンテンツネゴシエーションヘッダーには次のものがあります。
- Accept
- Accept-Charset
- Accept-Encoding
- Accept-Language
Railsルーティングでidとして数値のみを受け付ける
何も指定しないとRailsルーティングで受け付けるパラメータは int 型であろうと sting 型であろうと何でも受け入れてしまう。
例えばこれをRailsのDBのid(つまりint型)だけに制限したければ数値だけ受け付けるようにルーティングに変更を加えてやればよい。
constraints id: /\d+/ do
get ':id', ...
end