【问题标题】:Why does rails app return 406 instead of 404 in some cases?为什么 Rails 应用程序在某些情况下返回 406 而不是 404?
【发布时间】:2012-10-15 06:29:02
【问题描述】:
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-3
error-handling
【解决方案1】:
试试这个
respond_to do |format|
format.html {}
format.js {}
end
因为在您的“#{RAILS_ROOT}/public/..”中,406.htm 文件不是他们的,因此它会给出错误,并且 404.html 文件在公共文件夹中可用,因此可以调用。
在您的 {RAILS_ROOT}/public 这些是他们的文件
1. 404.html
2. 422.html
3. 500.html
如果你使用这些文件,那么它会调用 else 它会给出错误,比如文件不存在。
或
你也可以在 ApplicationController 中定义一个方法,比如:
def render_404
render :file => "#{RAILS_ROOT}/public/404.html", :status => 404
end
【解决方案2】:
406.htm 文件在您的公用文件夹中不可用,因此您收到错误 - 不存在文件。根据您的布局在您的公用文件夹中添加 406.html 文件,然后尝试。