ApplicationRecordを継承するモデルと、フォームオブジェクトなどを用いた際に、ActiveModelをincludeしたファイル。それぞれに対してバリデーションをかけることが可能だと思いますが、一部挙動が異なる点が見受けられました。
具体的には以下のように、半角数字の検証を行った際に見受けられました。
ruby
1 validates :number, format: { with: /\A[0-9]+\z/, message: 'は半角数字で入力してください'}
ApplicationRecordを継承するモデルでは、全角数字などを用いた際に半角の0と認識され、バリデーションをスキップしました。
一方で、ActiveModelをincludeしたファイルでは、全角数字は全角数字と認識され、バリデーションによって弾かれました。
これらの違いはなぜ生じるのでしょうか。
ApplicationRecordとActiveModelの違いが、今回の挙動の違いをうんでいるのだと思いますが、理由がわかりません。
どなたか分かる方教えていただければと思います。
Ruby:2.6.5
Rails:6.0
カラム型:integer
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/10 00:51
2020/09/10 00:53
2020/09/10 01:46
2020/09/10 02:04
2020/09/10 02:14
2020/09/10 06:34