fly*_*r88 11 format controller ruby-on-rails
我只是想知道rails如何知道请求的格式以正确输入着名的:
respond_to do |format|
format.html
format.xml
format.json
end
Run Code Online (Sandbox Code Playgroud)
作为一个例子,考虑一下我面临的这种情况.假设通过javascript(使用jQuery)我发出一个POST请求,说明dataType:json
$.ajax({
type: 'POST',
url: 'example.com',
data: data,
dataType: 'json'
});
Run Code Online (Sandbox Code Playgroud)
当这个请求到达控制器动作时,用ruby调试器站在它里面,我检查@ request.format,我可以看到内容类型是application/json.然后控制器按预期响应json格式.
但我对路线中指定的格式符号感到困惑.假设向example.com/parts.json发出请求,但在请求中,内容类型为application/html或application/xml.控制器是响应json格式还是html或xml?
谢谢!
来自ActionController :: MimeResponds:"Rails从客户端提交的HTTP Accept标头中确定所需的响应格式."