【发布时间】:2013-12-08 11:36:53
【问题描述】:
我正在向我的控制器发送一组关联 ID,例如 foo_ids。为了允许一个值数组,我使用:
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 设置为空数组。
【问题讨论】:
标签: ruby-on-rails strong-parameters