ユーザーにログインするために電子メールとパスワードが正しいかどうかを確認する必要がありますが、1 つのフィールドに対してリモートを呼び出すと、params に他のフィールド値がありません。
資格情報を確認するための私のアクションは次のとおりです。
def checkpass
user = User.find_by_email(params[:user][:email])
logger.debug "User: #{params[:user][:email]}"
logger.debug "Pass: #{params[:user][:password]}"
logger.debug "Devise pass:#{user.valid_password?(params[:user][:password])}"
respond_to do |format|
if user && user.valid_password?(params[:user][:password])
format.json { render :json => user }
end
end
end
jQuery 検証 (編集):
'user[password]': {
required: true,
minlength: 6,
remote: {
url: "http://127.0.0.1:3000/checkpass",
type: "get",
data: {
email: function() { return $("#user_email").val(); }
}
}
ログ
Processing by EditUserController#checkpass as JSON
Parameters: {"user"=>{"password"=>"[FILTERED]"}, "email"=>"user@mail.com", "pa
ssword"=>"[FILTERED]"}
←[1m←[35mUser Load (0.0ms)←[0m SELECT "users".* FROM "users" WHERE "users"."e
mail" IS NULL LIMIT 1
User:
Pass: 123456
params[:email] と params[:password] の両方を取得するにはどうすればよいですか?