前提
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