Poprawne rozwiązanie będzie zależeć od tego, czy planujesz przechowywać wartości skalarne w $_POST['invoice']['new_item_attributes'], czy też planujesz zrobić z tego tablicę tablic (innymi słowy, planujesz mieć wielokrotności nowych_item_attributes .
Jeśli planujesz tylko przechowywanie wartości skalarnych, najpierw musisz zmienić każdy z elementów formularza, aby wyglądał tak:
name="inovoice[new_item_attributes][description]"
Zauważysz, że pusty [] zniknął.
Twoja pętla powinna wyglądać tak:
foreach($_POST['invoice']['new_item_attributes'] as $key => $val) {
$data = array('description => $value);
}
W przeciwnym razie musisz użyć tego w kodzie PHP:
foreach($_POST['invoice']['new_item_attributes'] as $key => $val) {
$data = array('description' => $val['description']);
}
Lub:
foreach($_POST['invoice']['new_item_attributes'] as $key => $val) {
foreach($val as $sub => $value) {
$data = array($sub => $value);
}
}