2017-08-15 84 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