私の外部記憶装置

ただの覚え書きです。ちょこちょこ見直して加筆・修正していますが、間違ってるかも😅

【Rails】バリデーションエラーが2重に表示される

状況

フォームの「必須入力欄(作成者。ユーザー名を指定)」が空欄だった時に、バリデーションエラーが以下のように2重に表示された

原因と対応

  • 原因:以下の2つのバリデーションが実行されていた
    1. belongs_to :user
      belongs_toは、デフォルトでバリデーションを実行する。optional: trueを書くとバリデーションは実行されない
    2. 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