使用strong_parameters序列化数组
我正在尝试使用strong_parameters gem保存数组。 但我遇到表单如何发送我的数组的问题。 参数看起来像这样:
> params[:circuit] => {"title"=>"Some title", ..., "viewable_tasks"=>{"0"=>"woop", "1"=>"dee", ...}}
而且我的circuit_params
function看起来像:
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