状況
フォームの「必須入力欄(作成者。ユーザー名を指定)」が空欄だった時に、バリデーションエラーが以下のように2重に表示された
原因と対応
- 原因:以下の2つのバリデーションが実行されていた
belongs_to :user
belongs_to
は、デフォルトでバリデーションを実行する。optional: true
を書くとバリデーションは実行されないvalidates :user, presence: true
- 対応:2の方を削除
参考
Railsのform_withでパリデーションエラーが二重に表示される
Active Record の関連付け 4.1.2.11 :optional - Railsガイド v6.1
belongs_to < ActiveRecord::Associations::ClassMethods < api.rubyonrails.org v6.1