Rails 3: как вернуть ошибки в запросе JSON? - PullRequest
39 голосов
/ 15 мая 2011

Как я могу вернуть ошибку 800, 404 и т. Д., Когда пользователь отправляет запрос JSON / XML на мой API?

Я попытался

error 404, {:error => "ERror".to_json }

, но безуспешно.

Кроме того, я пытался поставить «response_to», но он не работает так же хорошо (он дублирует response_to и выдает ошибку).

Спасибо

1 Ответ

66 голосов
/ 15 мая 2011

Так же, как вы возвращаете такие ошибки с помощью html, это часть HTTP-заголовка.

render json: @myobject, status: :unprocessable_entity

Обновление, ответ на комментарий:

Вы можете получить все статускоды от стойки.Rails передает символизированный статус в Rack

Rack::Utils.status_code(options[:status])

, который просто сопоставляет символ со списком состояний (строки преобразуются в символы). Вот свежий список для курения: https://github.com/rack/rack/blob/master/lib/rack/utils.rb#L575-L638

Прокрутите немного ниже, и вы увидите метод status_code.Весело читать исходный код!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...