1

edit_profilesページの検証ルールを保持するモデルが1つあります。私はjqueryアコーディオンを使用してユーザーのedit_profileを異なるセクションに分割し、ユーザーが情報を編集できるようにしています。各セクションは別々のフォームです。Ruby on railsはユーザプロファイルの検証を必要とします

基本情報私について(フォーム1) 個人統計(フォーム2) の好きなもの(形式3) (形式4)

私の問題が正常に一つの形に関する情報を記入し、更新をクリックしているが失敗しました

私はvalidation_groupの宝石を使用しようとしましたが、これは何の影響もないように思われます。なぜなら、他のフォームはまだ検証されていないからです。 これを行う簡単な方法があるかどうかを知りたいですか?

フォームごとにバリデーションルールをまとめて別々のメソッドに入れて、一致するフォームの更新ボタンをクリックしたときにのみ有効にすることはできませんか?

フォーム1の更新ボタンをクリックすると、form_one_validationsメソッドが起動しなくなり、関連のない検証メソッドが起動しなくなります。

私は本当にこれを行う方法の例を感謝します。

def edit_profile 

    @profile = Profile.find_by_user_id(current_user.id) 

    end 

それは私のプロフィールコントローラ内部で基づいています。

これは、y edit_profileビューを担当するアクションです。あなたは、あなたのモデルにユーザーが対応するすべての情報を埋めた後、一度設定される「basic_info_completed」のようなものを追加フィールドを追加することができます。

種類は、私はあなたに、このようなアプローチを提案することができます

答えて

1

私は結局、以下を使用して終了しました:allow_blank このようにして、フィールドを入力する必要はありません。

0

について。必要なすべての検証を条件付きで行い、そのようなフィールドがtrueに設定されている場合にのみ実行します。したがって、ユーザーがプロファイルセクションのすべてのフィールドを塗りつぶす前に、すべてが検証なしで編集できますが、プロファイルフィールドが完了すると、そのプロファイルの部分の検証が有効になります。

+0

私はいつもdbを実際に保護したかったのです。それは私のdbがそれを保護するバリデーションの形式を持たない攻撃に対してよりオープンであることを意味しないでしょうか? – LondonGuy

+0

この場合、フィールドの状態は2つしかないと仮定します。グループのすべてのフィールドが空(null)で、グループのすべてのフィールドが設定(有効)です。 –

関連する問題