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标头确定所需的响应格式。”