1
我正在使用jquery的.ajax方法在rails api上調用ruby。 get調用的主體包含一個布爾變量。然而,這個布爾變量不斷轉換爲導軌側的字符串。在提出請求時我使用了正確的contentType。將json參數傳遞給rails api
這裏是我的JavaScript調用Ajax:
var postBody = {male: true}
var request = $.ajax({
method: "GET",
url: "/biographies/getAll",
dataType: 'json',
contentType: 'application/json',
data: postBody
});
在Ruby on Rails的控制器端,我使用的是:
params[:male]
然而PARAMS [:男]返回 「true」 字符串,而不是true布爾值。
根據Ruby on Rails的API:
如果「內容類型」您的請求頭設置爲「application/JSON」,Rails會自動將您的參數轉換成params哈希表,你可以像往常一樣訪問。 http://guides.rubyonrails.org/action_controller_overview.html#json-parameters
有沒有人有任何想法,爲什麼它不會轉換JSON請求爲boolean,但保持它作爲字符串。
謝謝。
這是有道理的。 – user1801879
這似乎是好的,但我認爲json允許布爾值,所以應該有一些方法來保持布爾值 – ImranNaqvi
即使原始值是布爾值,當它作爲Rails參數傳遞時,它將成爲一個字符串,並由Rails控制器和控制器端,'params [:male]'將始終是字符串。如果你知道如何將它保存爲布爾值,請告訴我,我會學到一些新的東西:) –