2017-08-15 82 views
0

我的删除api采用布尔查询参数/users?force=true。在我的控制,我加当我做了API调用apipie文档Rails apipie验证布尔参数失败

param :force, [true, false], required: false, desc: "query parameter." 

下,我得到

Apipie::ParamInvalid (Invalid parameter 'force' value "true": Must be one of: <code>true</code>, <code>false</code>.). 

我试图传递/用户?力= 1 /用户?力,但1被视为“1”,并且不传递任何东西都被视为零,并且两个调用均失败。我如何制作验证通行证?

注意:我知道api定义并不安宁。

回答

0

你正在通过的参数最终在字符串中为“真”,而不是布尔值,这就是为什么它失败。没有任何类型转换,rails不知道你正在尝试传递布尔值,而不是字符串。

你应该白名单“真”,“假”为有效的选项字符串,如:

param :force, [true, false, "true", "false"], required: false, desc: "query parameter." 
+0

那好吧,这样我就可以作为很好地去除真的,假的,只是通过在“真”,“假”作为theres无法通过布尔,正确? – learningtocode

+0

@learningtocode - 不是通过url参数,不,虽然我认为仍然可以在其他地方将参数设置为布尔值true,所以我仍然将其保留在 – TomD