2014-10-23 3 views
0

У меня есть API в том же приложении (но разные контроллеры и пространства имен) в качестве стандартных представлений и контроллеров для обработки тех же ресурсов.Rails обрабатывает 404 по-разному для разных типов запросов

В настоящее время, когда я получаю 404, независимо от того, был ли запрос выполнен как HTML или json, я получаю ответ HTML 404.

секция контроллера приложения для обработки 404 следующим образом:

unless Rails.application.config.consider_all_requests_local 
     rescue_from ActiveRecord::RecordNotFound, with: :render_denied_404 
     rescue_from ActionController::RoutingError, with: :render_404 
     rescue_from ::AbstractController::ActionNotFound, with: :render_404 
     rescue_from ActionController::UnknownController, with: :render_404 
     rescue_from ActionView::MissingTemplate, with: :render_404 
end 

def render_404(e = Exception.new) 
     Rails.logger.info "Rendering 404: #{e.to_s}" 
     flash[:error] = "Error 404 " + e.to_s 
     redirect_to "/404" 
end 

Как я могу изменить это, чтобы иметь дело с ошибкой 404 по-разному в зависимости от типа формата запроса?

ответ

Смежные вопросы