rails4 // ActionController :: UnknownFormat

时间:2015-06-07 19:06:43

标签: ruby-on-rails debugging request format

重定向时,某些机器人或其他外部请求会导致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

获取请求显然会起作用;然而它就会发生。

对此人的经验表示赞赏 很多

2 个答案:

答案 0 :(得分:1)

这将处理没有格式的请求:

rescue_from ActionController::UnknownFormat, with: :raise_not_found
def raise_not_found
    render(text: 'Not Found', status: 404)
end

答案 1 :(得分:0)

您可以向路线本身提供:format,告诉它哪些格式有效,哪些格式无效。

在此上阅读一些discussionsthis answer