Als ich dieses Mal versuchte, "file_field" in "fields_for" zu verwenden, hatte ich Probleme, weil es sich nicht in der Ansicht widerspiegelte. Deshalb werde ich beschreiben, wie man es als Memorandum löst. Ich hoffe, es wird denen helfen, die die gleichen Probleme haben.
・ (Eltern-) Postmodell ・ (Untergeordnetes) Bildmodell
Wir verknüpfen mit dem Postmodell und dem Bildmodell accept_nested_attributes_for.
Erstellen Sie SNS wie Twitter und FB. Ich bin dabei, ein Post-Formular mit "form_for" zu erstellen.
Satz → Postmodell Foto → Bildmodell Ich wollte es speichern und habe eine Ansicht wie diese erstellt:
(Zum besseren Verständnis werden nur die relevanten Teile extrahiert.)
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 "Post!"
Okay, die Codierung ist abgeschlossen! !! Gehen wir zur Ansicht! !! …Das,,"= f.fields_for :images do |i|Folgendes wird nicht wiedergegeben ... Außerdem weiß ich nicht, was los ist, weil es keine Fehler gibt ... Ich habe getan, wie ich überprüft habe ...
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 "Post!"
Ich dachte nur, wenn Sie das Modell, das Sie speichern möchten, in "fields_for" schreiben, wird es in der unter "file_field" beschriebenen Spalte gespeichert.
Es schien, dass ich ** eine untergeordnete Modellinstanz ** an das zweite Argument von "fields_for" übergeben musste.
Ich verstehe ... Es ist natürlich, weil ich auch "form_for" eine Instanz gebe. (Ich habe zuerst gelernt, dass Sie überhaupt eine images.build-Instanz erstellen können!)
Mehr und mehr.
Recommended Posts