POST JSON на сервер рельсов - PullRequest
       3

POST JSON на сервер рельсов

25 голосов
/ 06 февраля 2011
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 Ответ

45 голосов
/ 06 февраля 2011

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

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

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

A 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...