Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将json参数传递给rails api_Javascript_Jquery_Ruby On Rails_Ruby - Fatal编程技术网

Javascript 将json参数传递给rails api

Javascript 将json参数传递给rails api,javascript,jquery,ruby-on-rails,ruby,Javascript,Jquery,Ruby On Rails,Ruby,我正在使用jquery的.ajax方法对RubyonRailsAPI进行get调用。get调用的主体包括一个布尔变量。然而,这个布尔变量在rails端不断转换为字符串。我在发出请求时使用了正确的contentType 下面是我的javascript ajax调用: var postBody = {male: true} var request = $.ajax({ method: "GET",

我正在使用jquery的.ajax方法对RubyonRailsAPI进行get调用。get调用的主体包括一个布尔变量。然而,这个布尔变量在rails端不断转换为字符串。我在发出请求时使用了正确的contentType

下面是我的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[:male]返回“true”字符串,而不是true boolean

根据Ruby on Rails api:

如果请求的“Content-Type”头设置为“application/json”,Rails将自动将您的参数转换为params散列,您可以像平常一样访问该散列。

有人知道为什么它不会将json请求转换为布尔值,而是将其保留为字符串吗


谢谢。

在Rails中,参数值总是字符串Rails不尝试猜测或强制转换类型。您必须修改代码逻辑以适应这种Rails行为。e、 g:

params[:male] == 'true'

请参阅以供参考。

这似乎没问题,但我认为json允许布尔值,因此应该有某种方法将其保留为布尔值,即使原始值是布尔值,当它作为Rails参数传递时,它将成为字符串,并由Rails控制器处理,在控制器端,
params[:male]
将始终是字符串。如果您知道如何将其保持为布尔值,请让我知道,我会学到一些新东西:)