ActionController::UnknownFormat после обновления до рельсов 4.1

В моем application_controller.rb Я ловлю все 404 с render_404 метод:

def render_404(exception)
  respond_to do |format|
    format.html { render template: 'errors/error_404', layout: 'layouts/application', status: 404 }
    format.all { render nothing: true, status: 404 }
  end
end

Вторая строка отлично работала для всех форматов, кроме HTML, что особенно полезно, когда боты посылают вам случайные запросы страниц.

После обновления с Rails 4.0.4 до 4.1.1 запросы на не-HTML форматы выбрасываются ActionController::UnknownFormat ошибки у меня, который вызывает 500 и отправляет мне письмо. Я предполагаю, что это связано с добавлением вариантов, но я не смог точно найти, что не так в коде Rails.

Комментируя format.html линия делает format.all линия работы. Я, вероятно, могу взломать мой render_500 метод реагировать определенным образом, когда он получает ActionController::UnknownFormat но это не идеально. Есть идеи, как это исправить?

1 ответ

Формат является объектом класса ActionController::MimeResponds::Collector. Может быть, вы можете проверить API для получения дополнительной информации.

Другие вопросы по тегам