Ist es möglich, einen simple_fields_for
Eingang mit Daten von einem anderen Objekt zu füllen?Prefill ein verschachteltes Element mit simple_form
Ich habe ein User
Objekt. User
has_one Backpack
, Backpack
viele Pockets
und Pocket
has_many Items
hat Wenn meine Form Gebäude, i
<%= f.simple_fields_for :backpack do |backpack| %>
<%= render 'backpack', f:backpack %>
<% end %>
Jetzt bin mit, wenn ich auf users#new
bin, ist die ganze Form leer. Ich möchte die Backpack
Felder mit Daten von einem anderen Backpack
Objekt initialisieren, ist es möglich? Ich habe versucht, mit diesem zu tun: mit diesem
<%= f.simple_fields_for :backpack, @backpack do |backpack| %>
<%= render 'backpack', f:backpack %>
<% end %>
zusammen in meinem UsersController
:
@user = User.new
@backpack = Backpack.find(1).deep_clone include: [ :pockets, { pockets: :items } ]
Aber das funktioniert nicht: aus irgendeinem Grund die Backpack
Felder ausgefüllt sind, aber seine Pockets
und ihre Items
sind leer. Ich habe so ziemlich alles ausprobiert, was mir in den Sinn kam: meine Routen auf verschachtelte Objekte überprüft, mit und ohne deep_cloning versucht, verschachtelte Objekte sind nirgendwo zu finden, was mich wundern lässt, ist es überhaupt möglich ein Formular mit vorgefüllten verschachtelten zu initialisieren Modelle?
EDIT:
Ok, aus irgendeinem Grund so, wenn ich einen
<% @backpack.pockets.each do |pocket| %>
<%= pocket.title %>
<% end %>
setzen Sie alle Taschen Titel zeigt, was bedeutet, dass ich erfolgreich den Rucksack geklont, ABER, mit dies:
<%= f.simple_fields_for :pockets, @backpack.pockets do |pocket| %>
<%= render 'pocket', f: pocket %>
<% end %>
Nichts wird angezeigt.