我正在尝试使用strong_parameters gem保存数组。但我遇到表单如何发送我的数组的问题。 params看起来像这样:
> params[:circuit]
=> {"title"=>"Some title", ..., "viewable_tasks"=>{"0"=>"woop", "1"=>"dee", ...}}
我的circuit_params
函数如下:
def circuit_params
params.require(:circuit).permit(:title, :id, viewable_tasks: { }, ... )
end
我似乎无法获得允许我的参数工作的语法。我在控制台中得到的是:
> circuit_params
=> {"title"=>"implement plug-and-play mindshare",
"viewable_tasks"=>{"0"=>nil, "1"=>nil, "2"=>nil}, ...
在我的模特中,我有:
class Circuit < ActiveRecord::Base
serialize :viewable_tasks, Array
...
end
我注意到我可以使用我调用accepts_nested_attributes_for
的属性来使其正常工作,因此这可能与它有关。
感谢您的帮助
答案 0 :(得分:14)
我遇到了同样的问题,这是正确的语法:
def circuit_params
params.require(:circuit).permit(:title, :id, {:viewable_tasks => []}, ... )
end
答案 1 :(得分:0)
序列化物品必须在许可证参数的末尾。根据我的经验(我不确切知道为什么),你不能在序列化的项目之后输入另一个非序列化项目...试着让我们知道。
答案 2 :(得分:-1)
尝试使用:
def circuit_params
params.require(:circuit).permit(:title, :id, viewable_tasks:[], ... )
end