動かざることバグの如し

近づきたいよ 君の理想に

RailsでカラムAあるならカラムBとカラムCは入力必須とするバリデーション

環境

  • Rails7

やりたいこと

Railsのモデルバリエーションで、カラムAがtrueのときにカラムBとカラムCは入力必須とするバリデーションを実装したい

コード

ifオプションやwith_optionsメソッドを使う

class Model < ApplicationRecord
  # カラムAがtrueの場合のみカラムBとカラムCを必須にする
  with_options if: :column_a do
    validates :column_b, presence: true
    validates :column_c, presence: true
  end
end

参考リンク