Strong params: How to process nested json code?
On the unless n.update_attributes(node_params)
line, you're trying to update Node n
with nodes_params
, which are all of the nodes from your JSON minus the ids:
{"nodes"=>[{"title"=>"Hello", "description"=>"My description."}, {"title"=>"fdhgh", "description"=>"My description."}]}
You could just add :id
as a permitted node parameter, cut out the nodes
assignment step, iterate over node_params
instead, and just omit the :id
when updating Node n
. E.g.,
def update organization = Organization.find(params[:id]) node_params.each do |node| n = Node.find(node[:id]) unless n.update_attributes(node.except(:id)) render json: organization, status: :failed end end render json: diagram, status: :okendprivate def node_params params.require(:organization).permit(nodes: [:id, :title, :description]) end