Я посылаю массив идентификаторов ассоциации, скажем foo_ids
моему контроллеру. Чтобы разрешить массив значений, я использую:
params.permit(foo_ids: [])
Теперь проблема заключается в том, что если я отправлю пустой массив из foo_ids
, параметр будет проигнорирован. Вместо того, чтобы очищать все foos
по мере того, как должен работать пустой массив, ассоциация остается одна, потому что foo_ids
не разрешено.
Возможно, это связано с тем, что пустой массив преобразуется в nil в rails, и это значение nil игнорируется, поскольку сильные параметры ищут массив скалярных значений, а не одно скалярное значение.
Может ли кто-нибудь предложить хороший способ решить эту проблему? Спасибо!
Дополнительная информация
В действии контроллера обновлений мне нужно иметь возможность обрабатывать два случая. Мне нужно установить foo_ids
в пустой массив. Мне также нужно иметь возможность игнорировать foo_ids
, если я просто хочу обновить другое поле. Установка foo_ids
в пустой массив, если nil не работает для этого второго случая.