0

私はそのような問題を抱えています:私はユーザーの電子メールをチェックしていますが、バリデーターに値が有効かどうかを伝えることができません。

私はそのような行動をとっています:

def checkemail
 respond_to do |format|
 format.jsonr do
  if User.where(email: params[:email]).exists? 
    render :json => {
        :status  => :false,
        }.to_json
   else
     render :json => {
        :status  => :true,
        }.to_json
     end
    end
  end
end  

ここにjQueryがあります:

    $(".sign_up").validate({
    rules: {
         "user[email]": {
          remote: {
            url: "http://127.0.0.1:3000/checkemail.jsonr",
            type: "get",
            data: {
              email: function() { return $("#email").val(); }
            }
          }
        }
    })

コンソールからの結果は次のとおりです。

    Processing by EditUserController#checkemail as JSONR
    Parameters: {"user"=>{"email"=>"use@mail.com"}, "email"=>"use@mail.com"}
    ←[1m←[36mUser Exists (0.0ms)←[0m  ←[1mSELECT 1 FROM "users" WHERE "users"."email" = 
   'use@mail.com' LIMIT 1←[0m

したがって、検証は合格していませんが、合格する必要があります。

また、ページ ステータス コードを渡そうとしましたが、失敗しました。

誰かが私のエラーの場所を提案できますか?

4

2 に答える 2

0

次のプロパティを設定してみてください。

remote: {
  contentType: "application/json; charset=utf-8",  
  dataType: "json",
  ...
于 2012-09-14T06:26:24.020 に答える
0

:false/:true の代わりに false/true ブール値を使用する必要があります

puts({:status => :false}.to_json)
{"status":"false"}

puts({:status => false}.to_json)
{"status":false}
于 2012-09-14T07:08:36.523 に答える