对布尔参数失败的Rails apipie验证

时间:2017-08-15 12:27:05

标签: ruby-on-rails apipie

我的删除api采用布尔查询参数/users?force=true。在我的控制器中,我为apipie文档添加了以下内容

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

当我拨打api电话时,我得到了

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

我试过传递/用户?force = 1,/ users?force,但是1被视为&#34; 1&#34;并且没有传递任何东西被视为零并且两个调用都失败了。如何进行验证?

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

1 个答案:

答案 0 :(得分:0)

你传递的参数最终是字符串中的“true”,而不是布尔值,这就是它失败的原因。没有任何类型转换,rails不知道你试图传递布尔值,而不是字符串。

您应该将“true”,“false”列为有效选项中的字符串,如:

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