11
我只是想知道如何軌知道請求的格式,如著名的正確輸入:rails如何確定傳入的請求格式?
respond_to do |format|
format.html
format.xml
format.json
end
例如,考慮這種情況下,我面臨了。假設通過JavaScript(使用jQuery)我做一個POST請求expliciting 數據類型:JSON
$.ajax({
type: 'POST',
url: 'example.com',
data: data,
dataType: 'json'
});
當這個請求到達控制器動作,裏面站着紅寶石調試器,我檢查@ request.format,我可以看到該內容類型是application/json。然後,控制器按預期響應json格式。
但我很迷惑路由中指定的格式符號。假設請求example.com/parts.json但請求中的內容類型是application/html或application/xml。 控制器是響應json格式還是html或xml?
謝謝!
謝謝!但是我不明白什麼是指例如在routes.rb中出現的格式符號。因爲如果我向我的服務器發送請求(例如GET /entities.xml)並在我的控制器中有一個xml respond_to處理程序,那麼accept標頭會在google chrome檢查器中顯示application/XML。中間有些東西我還沒有明白。機架是在URL中看到.xml的機架,並根據它建立適當的REQUEST並使用適當的接受頭文件?再次感謝! – flyer88 2011-06-06 17:50:48
基本上:xml是在這裏註冊的mime類型之一https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/http/mime_types.rb這就是您將MIME類型與:格式符號。該符號用於調用相應的渲染器,該渲染器已在ActionController :: Renderer中註冊。 – mikewilliamson 2011-06-07 20:53:59