更新到rails 4.1后的ActionController :: UnknownFormat

时间:2014-06-11 18:24:46

标签: ruby-on-rails ruby-on-rails-4 actioncontroller

在我的application_controller.rb中,我使用render_404方法捕获所有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 个答案:

答案 0 :(得分:0)

format是ActionController :: MimeResponds :: Collector类的对象。也许您可以查看API以获取更多信息。