轨道410在没有路线匹配

时间:2012-02-20 15:37:28

标签: ruby-on-rails ruby

如果有人使用错误的路线进入我的网站,则会使用404代码和错误

进行回复

ActionController::RoutingError No route matches

我可以使用410代码响应导轨错误而不是404吗?

1 个答案:

答案 0 :(得分:4)

我不确定为什么你会想要410 error(Gone),因为资源曾经可用但不再存在。

如果您按照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"