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]'将始终是字符串。如果你知道如何将它保存为布尔值,请告诉我,我会学到一些新的东西:) –