def create
req = ActiveSupport::JSON.decode(request.body)
if user = User.authenticate(req["email"], req["password"])
session[:user_id] = user.id
render :json => "{\"r\": \"t\"}" + req
else
render :json => "{\"r\": \"f\"}"
end
end
'create'メソッドはコントローラーにあり、 "/ login"にマップされています。正しいコンテンツタイプを設定し、curlクライアントからのヘッダーを受け入れます。 422 HTTPステータス応答が常に返されます。
助言がありますか?
正しいヘッダーで送信する場合は、「ActiveSupport :: JSON.decode」を実行する必要はありません-Railsがそれを行います。
投稿に次のヘッダーを設定する必要があります。
Content-Type: application/json
Accept: application/json
422はUnprocessable Entityを意味します---通常、検証エラーが発生しました。
あなたが持つことができるはずです。できない場合は、ヘッダーが正しく設定されていません。
def create
if user = User.authenticate(params["email"], params["password"])
session[:user_id] = user.id
render :json => "{\"r\": \"t\"}" + req
else
render :json => "{\"r\": \"f\"}"
end
end