rails如何确定传入的请求格式?

我只是想知道rails如何知道请求的格式以正确输入着名的:

respond_to do |format| format.html format.xml format.json end 

作为一个例子,考虑一下我面临的这种情况。 假设通过javascript(使用jQuery)我发出一个POST请求,说明dataType:json

 $.ajax({ type: 'POST', url: 'example.com', data: data, dataType: 'json' }); 

当这个请求到达控制器动作时,用ruby调试器站在它里面,我检查@ request.format,我可以看到内容类型是application / json。 然后控制器按预期响应json格式。

但我对路线中指定的格式符号感到困惑。 假设向example.com/parts.json发出请求,但在请求中,内容类型为application / html或application / xml。 控制器是响应json格式还是html或xml?

谢谢!

来自ActionController :: MimeResponds :“Rails根据客户端提交的HTTP Accept标头确定所需的响应格式。”