我有一個設置表5個布爾字段。我希望能夠通過JSON創建和更新這些字段。據我所知,Rails將所有參數轉換爲字符串,以便布爾值始終返回true。如果我派:通過JSON API在Rails中更新布爾型字段?
{ "settings": { "setting1":true, "setting2":false } }
然後嘗試做:Setting.new(params[:settings])
,這兩種設置是正確的數據庫,因爲false
第二設置的值轉換爲"false"
,因此實際的計算結果爲true
。其實我甚至不能這樣做,因爲我得到:
NoMethodError (undefined method `stringify_keys' for #<String:0x000000213dcbd0>)
在那一行上。來自互聯網的一些建議說,將參數與"true"
進行比較,然後存儲該參數。儘管這是一個巨大的痛苦,因爲那樣我就無法利用大規模的任務。我不希望有這樣做:
@setting = Setting.new
@setting.setting1 = (params[:settings][:setting1].eql? "true")
...
對於所有5個領域,尤其是因爲我將不得不這樣做,對創建,更新,甚至可以從其他控制器(某些控制器接受JSON創建設置對象以及他們自己的屬性)。
有沒有更好的方法來解決這個問題? JSON API對於Rails來說看起來很標準,看起來這將會以更優雅的方式來處理?
這基本上是我一起去的。我仍然認爲這是可笑的,你必須做一個解決方法,以便Rails識別有效的JSON -_- –
看到我的回答,我認爲這是矯枉過正,你可以使用'「0」而不是false。 –