2016-10-19 39 views
0

我使用js-routes作爲我的ruby on rails項目的一部分,我試圖按照github page.實現默認url選項我創建了「jsroutes.rb 「文件在我的configu/initializers文件夾中,但是,當我從我的軌道routes.rb文件中刪除:format => false時,我添加了讓js-routes工作,我開始接收404再次缺少格式。js-routes默認url選項設置,但仍然拋出404

我曾嘗試以下,並證實他們正在被加載通過把服務器上啓動的語句:在同一

JsRoutes.setup do |config| 
    default_url_options = {format: :json} 
end 

JsRoutes.setup do |config| 
    default_url_options = {:format => 'json'} 
end 

和一些其他的變化,所有結果。

我的理解是,如果我設置了這個選項,任何通過js-routes建立的請求都會自動附加格式爲JSON。這是錯的嗎?

的錯誤吐出來的都是一般軌404的與缺少格式,如這樣的:

ActionController::RoutingError (No route matches [POST] "/purchases(.:format)") 

JS-路線,將觸發此的一個例子使用率低於;

window.location.href=Routes.purchases_path 

我也被沖洗通過「耙TMP:緩存:清除」緩存,保證了JS-routes文件再生每次啓動服務器時。

我在這裏錯過了什麼?

回答

0

所以這是一個有趣的錯誤。這是因爲即使我設置了URL選項,並將內容類型設置爲'application/json',我也將該對象傳遞給了AJAX調用。

只要我將AJAX調用的數據組件更改爲序列化爲JSON的對象,調用就會成功。

我錯誤地認爲,將內容類型和對象傳遞給AJAX調用會自動將對象序列化爲JSON。