我向控制器發送關聯ID數組,例如foo_ids
。要允許值的數組,我使用:現在Rails - 空陣列的強參數
params.permit(foo_ids: [])
,問題是,如果我發送的foo_ids
空數組,該參數將被忽略。不應將所有foos
作爲空數組進行清除,而是關聯,因爲不允許使用foo_ids
。
這可能是因爲an empty array is converted to nil in rails,並且nil值被忽略,因爲強參數正在尋找一個標量值數組,而不是單個標量值。
任何人都可以提出一個很好的方法來解決這個問題嗎?謝謝!
其他信息
在更新控制器動作,我需要能夠處理兩種情況。我需要能夠將foo_ids
設置爲空數組。如果我只想更新另一個字段,我還需要能夠忽略foo_ids
。如果nil不適用於第二種情況,則將foo_ids
設置爲空數組。
我正在考慮猴子補丁的before_filter在那裏我會做些什麼來解決這個問題的是,在「_ids」結尾的所有鍵。想法? – futbolpal
這會工作。我有一些情況下需要爲嵌套在哈希中的參數做這個工作,所以您可能也想根據您的使用情況來處理這些參數。 –