私は過去にjQueryリモート関数を使用したことがありますが、この場合は問題が発生しています。
電子メールの一意性をチェックするためのリモート機能が機能していますが、ユーザーがjQuery検証プラグインを使用してパスワードを入力したときにパスワードをチェックしたいのですが(可能な場合)、Firebugに常に入ります:
406 Not acceptable
これが私の行動です(ここに問題があります。編集):-編集
def checkpass
@user = User.find_by_email(params[:email])
if @user && @user.valid_password?(params[:user][:password])
@check = true
end
respond_to do |format|
format.json { render :json => @check }
end
end
コンソールから: -編集
Started GET "/checkpass?user%5Bpassword%5D=[FILTERED]&email=new%40mail.com" for 127.0.0.1 at 2012-09-30 11:42:26 +0300
Processing by EditUserController#checkpass as JSON
Parameters: {"user"=>{"password"=>"[FILTERED]"}, "email"=>"new@mail.com", "pas
sword"=>"[FILTERED]"}
←[1m←[36mUser Load (0.0ms)←[0m ←[1mSELECT "users".* FROM "users" WHERE "users
"."email" = 'new@mail.com' LIMIT 1←[0m
User: new@mail.com
Pass: 123456
Devise pass:true
Completed 200 OK in 438ms (Views: 15.6ms | ActiveRecord: 0.0ms)
メールの一意性を確認するためのWORKINGアクションは次のとおりです。
def checkemail
@user = User.find_by_email(params[:user][:email])
respond_to do |format|
format.json { render :json => !@user }
end
end
およびリモート関数を使用したjQueryの検証-編集
$("#edit_password").validate({
rules: {
"user[password]":{
required: true,
minlength: 6,
remote: {
url: "http://127.0.0.1:3000/checkpass",
type: "get",
data: {
email: function() { return $("#user_email").val(); }
}
},
...
})
checkuniqeness jQueryの実例:
"user[email]": {
required: true,
email: true,
remote: {
url: "http://127.0.0.1:3000/checkemail"
}
私のエラーはどこにありますか?