0

confirm_password 入力ボックスがフォームに存在するかどうかを確認する必要があります。
存在する場合は、これを行う必要があります。

validates :password,:confirmation=>true

そうしないと

確認を false に設定します。

問題の詳細な説明:

モデルの検証をJavaScriptフォームの検証に変換するrails client_side_validation gemを使用しています。

ログインとサインアップは同じテーブルに属しているため、これには少し問題があります。どちらも1つのモデルを持っています。これを検証のためにモデルに追加すると、次のようになります。

validates :password,:confirmation=>true

ログイン時にconfirm_password入力ボックスがないため、検証がfalseになるため、ログインできません。サインアップでのみ機能します。

4

2 に答える 2

1

サインアップ フォームには、フォームに渡される非表示フィールドを含めることができます。属性が存在して返されtrueた場合、パスワード確認の存在を検証します。

サインアップ フォーム、フォーム タグ内のどこかに:

<%= form.hidden_field :is_signup, true %>

モデル:

attribute_accessor :confirm_password
attribute_accessor :is_signup

validates :confirm_password, :presence => true, :if => :validate_confirm_password?

def validate_confirm_password?
  is_signup
end
于 2012-12-17T20:33:52.323 に答える
1

モデル User@user.is_signup = trueが users_controller のサインアップ アクションに追加されたと仮定します。User モデルに と を追加attribute_accessor :is_signupvalidates :confirm_password, :confirmation => true, :if => :is_signupます。

于 2012-12-18T18:44:34.973 に答える