Cette fois, quand j'ai essayé d'utiliser "file_field" dans "fields_for", j'ai eu du mal parce qu'il n'était pas reflété dans la vue, donc je décrirai comment le résoudre sous forme de mémorandum. J'espère que cela aidera ceux qui ont les mêmes problèmes.
・ Modèle de poste (parent) ・ Modèle d'image (enfant)
Nous nous associons au modèle de poste et au modèle d'image accepte_nested_attributes_for.
Créez des SNS comme Twitter et FB. Je suis sur le point de créer un formulaire de publication en utilisant "form_for".
Phrase → post-modèle Photo → modèle d'image Je voulais l'enregistrer et j'ai créé une vue comme celle-ci:
(Seules les parties pertinentes sont extraites pour une compréhension facile)
haml
.form__contents
= form_for @post, id: "new_post" do |f|
.title
= f.text_field :title
.text
= f.text_area :text
.image
= f.fields_for :images do |i|
= i.file_field :image
= f.submit "Publier!"
D'accord, le codage est terminé! !! Allons à la vue! !! …cette,,"= f.fields_for :images do |i|Ce qui suit n'est pas reflété ... De plus, je ne sais pas ce qui ne va pas car il n'y a pas d'erreurs ... j'ai fait ce que j'ai vérifié ...
haml
.form__contents
= form_for @post, id: "new_post" do |f|
.title
= f.text_field :title
.text
= f.text_area :text
.image
= f.fields_for :images, @post.images.build do |i|
= i.file_field :image
= f.submit "Publier!"
Je pensais juste que si vous écrivez le modèle que vous souhaitez enregistrer dans "fields_for", il sera sauvegardé dans la colonne décrite dans "file_field".
Il semble que je devais passer ** une instance de modèle enfant ** au deuxième argument de "fields_for".
Je vois ... C'est naturel parce que je donne également une instance à "form_for". (J'ai d'abord appris que vous pouvez créer une instance images.build en premier lieu!)
De plus en plus.
Recommended Posts