2016-07-11 13 views
0

Devise RegistrationsコントローラにAPIを書き込んで、指定された電子メールIDを持つユーザが存在するかどうかを確認しましたか?Devise Controllerが '+'文字を無視する

def check_user 
    user = User.find_by_email(params[:email]) 
    if user 
    render json: { success: true, status: 200} and return 
    else 
    render json: { success: false, status: 200} and return 
    end 
end 

デビットコントローラは、パラメータ内の '+'文字を削除します。 つまり、私が/[email protected]にヒットしたとき、コントローラーに到達するパラメーターはParameters: {"email"=>"soorajs [email protected]"}です。これはdeviseの設定が悪いためですか?

答えて

1

これは柵ではなく、レールです。 +は、クエリ文字列内のエンコードされたスペースを意味します。リテラルプラスが必要な場合は、%2Bとしてエンコードする必要があります。

また、POST要求を使用して、要求本体にパラメータを送信することもできます。そこにエスケープする必要はありません。明白なクエリのためにPOSTを使用することは偽物です。

関連する問題