Disons que j'ai Modèle d'entraînement qui a beaucoup Article. Aussi L'entraînement accepte les attributs imbriqués pour Articles. En utilisant form_for Je veux envoyer des paramètres de élément dans un tableau de la manière suivante:Comment obtenir un tableau d'objets à partir du formulaire?
"workout"=>{"workout_title"=>"title",
"items"=>{
["name"=>"first item", "name"=>"second item"]
}
}
Mais pour quelque raison que je ne ai pu obtenir comme ça
"workout"=>{"workout_title"=>"title",
"items"=>{"name"=>"second_item"}
}
Comment puis-je résoudre ce?
Voici la forme qui produit les paramètres ci-dessus.
= form_for :workout, url: welcome_index_path, method: :post do |f|
= f.text_field :workout_title
= f.fields_for :items, child_index: 1 do |builder|
= builder.text_field :name
= f.fields_for :items, child_index: 2 do |builder|
= builder.text_field :name, id: 'workout_items_name_2', name: 'workout[items][name]'
= f.submit 'Go'
Vous ne mettez pas 'name: 'workout [items] [name]'' dans le premier 'builder.text_field' –
@PetrGazarov dans ce cas, seul le second paramètre est également envoyé. –
Enlevez le 'nom: 'workout [articles] [nom]'' et dans les paramètres forts donnez-le 'nom []'. – Pavan