コントローラのパラメータをループして値を変更するにはどうすればよいですか?パラメータを正しく反復する方法
この:私は複数選択の代わりに、単一の選択ボックスを使用していますより多くのコンテキストを提供するために、
# can't convert Symbol into Integer
:
...
params[:contact][:relationships_attributes].each do |rel|
rel[:contact_ids] = [rel[:contact_ids]]
end
...
はのエラーを返します。したがって、コントローラは配列を期待していますが、その代わりに単一の値を取得しています。ここで
は私のparamsです:
{"utf8"=>"✓",
"_method"=>"put",
"authenticity_token"=>"8FrW59t9vzSep+jEGceMdE/b5q69i5hrEp08yZJJk0o=",
"contact"=>
{"first_name"=>"John",
"last_name"=>"Smith",
"email_addresses_attributes"=>
{"0"=>
{"value"=>"[email protected]",
"type"=>"Home",
"_destroy"=>"false",
"id"=>"4f4eea6dbe5a2ccf03000031"
},
"1"=>{"value"=>"[email protected]",
"type"=>"Home",
"_destroy"=>"false",
"id"=>"4f4eea7dbe5a2ccf03000035"
}
},
"phone_numbers_attributes"=>
{"0"=>
{"value"=>"555-334-5959",
"type"=>"Home",
"_destroy"=>"false",
"id"=>"4f4eea64be5a2ccf0300002c"}
},
"addresses_attributes"=>
{"0"=>
{"type"=>"Home",
"street_address"=>"12345 Any Rd",
"city"=>"Anytown",
"state"=>"CO",
"country"=>"United States",
"_destroy"=>"false",
"id"=>"4f4eea64be5a2ccf0300002d"
}
},
"relationships_attributes"=>
{"1330623965418"=>
{"contact_ids"=>"4f4e6696be5a2ca2a7000045",
"title"=>"Wife",
"_destroy"=>"false"
}
}
},
"commit"=>"Update Contact",
"id"=>"4f4e6696be5a2ca2a7000045"
}
私は私のparamsを含めるようにポストを更新@muistooshort:あなたにこのような構造を与える
を。 –