モデルに enum 宣言した属性は、定義していない値をセットした時点 ArgumentError になる。このエラーは save や validation する前に発生するので注意が必要。モデルを更新するインターフェース(たとえばCSV)によっては不正な値を受け取る可能性を排除できない。したがってそのようなインターフェースを使う場合には値のチェック、もしくは ArgumentError のエラーハンドリングを行う。このメッセージはバリデーションエラーではないので、簡単に i18n ローカライズすることができないことに注意。
- http://soccer1356abc.hatenablog.com/entry/2018/12/22/150516
- https://stackoverflow.com/questions/37177893/rails-enum-validation-not-working-but-raise-argumenterror
モデルの名称と属性の名称をローカライズするには、下記のような翻訳データを用意する。