前提
Userにbirthdayのカラムがありフォームで年月日にわけてパラメータを3つに分けて受け取って最後に結合して保存する処理を書いています。
実現したいこと
①birthday_y, birthday_m, birthday_dの3つのうちどれかを受け取った場合(フォームで年だけ入力した場合等)には全て入力するようにバリデーションをかけ、
②birthday_y, birthday_m, birthday_dが全て空の場合(フォーム空白のまま)
にはバリデーションなしにしたい(birthdayは必須入力ではない)のですが
何か良い方法はありますでしょうか?
該当のソースコード
ruby
1validates :birthday_y :presence: true if -> {:birthday_m.blank?, :birthday_d.blank?} 2validates :birthday_m :presence: true if -> {:birthday_y.blank?, :birthday_d.blank?} 3validates :birthday_d :presence: true if -> {:birthday_y.blank?, :birthday_m.blank?}
試したこと
上記書いてみたのですがすべてtrueになってしまい条件文が効いてないようでした。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2022/08/11 04:51