ruby-on-rails – 在Rails 4中禁用除HTML之外的其他格式?

我们最终得到了很多

ActionView::MissingTemplate (Missing template presentations/show, application/show with {:locale=>[:en], :formats=>["image/*"], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :haml]}

在我们的日志中.

该应用程序目前仅执行HTML,因此我希望所有其他格式返回406(或其他).有没有办法为所有渲染调用设置一次?或者,我们是否必须随时随地回应?

谢谢!

最佳答案 您可以将rescue_from行添加到ApplicationController.rb:

class ApplicationController < ActionController::Base

  rescue_from ActionView::MissingTemplate do |e|
    render nothing: true, status: 406
  end

  # ...

end

如果我尝试在我的Rails应用程序中访问document.xml(而不是document.pdf),Firefox会在浏览器控制台中显示以下消息:

GET http://localhost:3000/quotes/7/document.xml [HTTP/1.1 406 Not Acceptable  29ms]
点赞