重定向时,某些机器人或其他外部请求会导致ActionController::UnknownFormat
错误
是否有一个catch-all方法在application_controller中添加某个地方来处理这些错误?
在请求中添加默认方法的配置规范(如果没有指定)?
以下跟踪示例:
An ActionController::UnknownFormat occurred in main#index:
ActionController::UnknownFormat
app/controllers/main_controller.rb:17:in `index'
-------------------------------
Request:
-------------------------------
* URL : http://ownedurl.com/
* HTTP Method: GET
* IP address : 82.xxx.xxx.xxx
* Parameters : {"controller"=>"main", "action"=>"index"}
* Timestamp : 2015-06-07 20:54:32 +0200
* Server : servername
* Rails root : /var/www/ownedurl.com/releases/208
* Process: 29726
获取请求显然会起作用;然而它就会发生。
对此人的经验表示赞赏 很多
答案 0 :(得分:1)
这将处理没有格式的请求:
rescue_from ActionController::UnknownFormat, with: :raise_not_found
def raise_not_found
render(text: 'Not Found', status: 404)
end
答案 1 :(得分:0)
您可以向路线本身提供:format
,告诉它哪些格式有效,哪些格式无效。
在此上阅读一些discussions和this answer。