使用strong_parameters序列化数组

我正在尝试使用strong_parameters gem保存数组。 但我遇到表单如何发送我的数组的问题。 参数看起来像这样:

> params[:circuit] => {"title"=>"Some title", ..., "viewable_tasks"=>{"0"=>"woop", "1"=>"dee", ...}} 

而且我的circuit_paramsfunction看起来像:

 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属性来使其正常工作,因此这可能与它有关。

谢谢你的帮助

我只是遇到了同样的问题,这是正确的语法:

 def circuit_params params.require(:circuit).permit(:title, :id, {:viewable_tasks => []}, ... ) end 

序列化的项目必须在许可证参数的末尾。 根据我的经验(我不确切知道为什么),你不能在序列化之后输入另一个未序列化的项目…尝试告诉我们。

试试这个:

 def circuit_params params.require(:circuit).permit(:title, :id, viewable_tasks:[], ... ) end