2017-03-21 9 views
0

特定のページだけにバリデーションを追加しようとしています。 今私は、ユーザがサインアップしたときに電子メール/ pw/pw確認を入れて、送信ボタンをクリックすると、ユーザの編集ページにそれらを送信します。特定のページにバリデーションを追加する

validates :first_name, :last_name, :date_of_birth, :goals, uniqueness: true, on: :edit 

が、残念ながら誰かが私は理由を説明することができます検証していない:

私は、次のコード行を使用していますか?

+0

は、あなたがいるかどうかを検証しようとしている必要があります:、FIRST_NAME:LAST_NAME、DATE_OF_BIRTHは、これらの組み合わせは、私は彼らかどうかを検証したいユニーク – praga2050

+0

であれば目標は空になっているか、チェックしています私はまた、次のコード行を試しました:validates_presence_of:first_name、:last_name、:date_of_birth、:goals、true:on::editどちらも動作しませんでした – Amena

答えて

1

問題は、一度に複数の属性に対して「セクシーな検証」を実行しようとしていることです。それは動作しません。代わりにこれを試してください:

validates_uniqueness_of :first_name, :last_name, :date_of_birth, :goals, on: :update 
+0

素晴らしい!ありがとうございました !一意性の代わりにプレゼンテーションを追加しました(エラーメッセージは私が必要としていたものです)が、それは完璧です! – Amena

0

前の回答は少し誤解を招くことがあります。あなたのコードの問題は検証構文ではありませんでした。あなたはまだ validates :first_name, :last_name, :date_of_birth, :goals, uniqueness: trueを使用することができますが、代わりにon: :editのあなたはon: :update

関連する問題