Отключить формат ответа HTML во всем приложении Rails

Я использую чистый шаблон внешнего интерфейса javascript для обработки всех запросов с Rails через JSON API.

Тем не мение,

Я не знаю, почему иногда исключение выдает мне сообщение об ошибке в формате HTML.

Потому что я уже установил формат запроса API в JSON

Контроллер (я храню только format.json в контроллере)

format.json { render json: @city.errors, status: :unprocessable_entity }

Route.rb

  namespace :api do
    namespace :v1, defaults: {format: 'json'} do
    resources country do
        resources city do
            .....
        end
    end
    end
  end

person newBike    schedule 20.05.2016    source источник
comment
Почему бы тебе не использовать Grape и Swagger для создания своих API, друг мой. Ссылки: github.com/ruby-grape/grape, github.com/ruby-grape/grape-swagger-rails. Надеюсь на эту помощь. :)   -  person thanhnha1103    schedule 20.05.2016


Ответы (2)


Я не знаю, почему иногда исключение выдает мне сообщение об ошибке в формате HTML.

Это не зависит от вашего приложения, все дело в запросах и заголовках запросов, если кто-то делает запрос, поскольку рельсы html пытаются отобразить html.

person Зелёный    schedule 20.05.2016

Исключения отображаются в HTML вне вашего контроллера. Вы должны сделать это самостоятельно:

ваш контроллер:

begin
  code_for_ok
rescue #some exception
  render json: @city.errors, status: :unprocessable_entity
end
person Mikhail Chuprynski    schedule 20.05.2016
comment
Я предполагаю, что здесь исключение составляет ActionController::UnknownFormat. - person Зелёный; 20.05.2016