Serialize array with strong_parameters

馋奶兔 提交于 2019-11-30 16:51:38

问题


I am trying to save a array using the strong_parameters gem. But I am having issues with how the form is sending my array. The params look like this:

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

And my circuit_params function looks like:

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

I can't seem to get the syntax to allow my params to work. What I get in my console is:

> circuit_params
=> {"title"=>"implement plug-and-play mindshare",
 "viewable_tasks"=>{"0"=>nil, "1"=>nil, "2"=>nil}, ...

In my model I have:

class Circuit < ActiveRecord::Base
   serialize :viewable_tasks, Array
   ...
end

I noticed that I can get it to work properly with attributes I call accepts_nested_attributes_for on, so this may have something to do with it.

Thanks for any help


回答1:


I just had the same issue and this was the correct syntax:

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



回答2:


the serialized items must be in the end of the permit parameters. In my experience (and i dont know exactly why), you cannot input another unserialized item after a serialized one... try and let us know.




回答3:


Try using this:

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


来源:https://stackoverflow.com/questions/15983208/serialize-array-with-strong-parameters

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!