рельсы 410 ни на одном маршруте - PullRequest
2 голосов
/ 20 февраля 2012

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

ActionController::RoutingError No route matches

Могу ли я ответить кодом ошибки 410 на рейках вместо 404?

1 Ответ

4 голосов
/ 20 февраля 2012

Я не уверен, почему вы хотите, чтобы ошибка 410 (Прошла) относится к ресурсу, который когда-то был доступен, но его больше нет.

Если вы следуете ответуна https://stackoverflow.com/a/5360684/219743, тогда это позволяет вам сделать это.

Просто измените метод render_404 на

def render_404
  if /(jpe?g|png|gif)/i === request.path
    render :text => "404 Not Found", :status => 410 # Change the status here
  else
    render :template => "shared/404", :layout => 'application', :status => 410 #and here
  end
end

Если вы все еще хотите указать на 404.html в общей папке:

render :file => "#{Rails.root}/public/404.html"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...