Отправить json на сервер rails

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. Я получаю ответ состояния http 422 все время.

какие предложения?

1 ответов


Если вы отправляете правильные заголовки, вам не нужно будет делать " ActiveSupport:: JSON.decode " -- rails сделает это за вас.

вам нужно будет установить следующие заголовки в вашем сообщении.

Content-Type: application/json
Accept: application/json

422 означает необработанный объект - - - как правило, что произошел сбой проверки.

вы должны иметь возможность. Если вы не можете, то ваши заголовки установлены неправильно.

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