Подтвердить что ты не робот

Rails 3: Как вернуть ошибки в запросе JSON?

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

Я пробовал

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

без успеха.

Кроме того, я попытался поместить "reply_to", но он не работает (он дублирует response_to и дает ошибку).

Спасибо

4b9b3361

Ответ 1

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

render json: @myobject, status: :unprocessable_entity

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

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

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

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

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