0

私は過去に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"
          }

私のエラーはどこにありますか?

4

0 に答える 0