是否可以使用其他對象的數據預填充simple_fields_for
輸入?使用simple_form預填充嵌套元素
我有一個User
對象。 User
HAS_ONE Backpack
,Backpack
有許多Pockets
和Pocket
的has_many Items
在構建自己的狀態,我使用
<%= f.simple_fields_for :backpack do |backpack| %>
<%= render 'backpack', f:backpack %>
<% end %>
現在,當我在users#new
,整個窗體是空的。我想用另一個Backpack
對象的數據初始化Backpack
字段,有可能嗎?我試着這樣做:在我UsersController
<%= f.simple_fields_for :backpack, @backpack do |backpack| %>
<%= render 'backpack', f:backpack %>
<% end %>
與此相伴
:
@user = User.new
@backpack = Backpack.find(1).deep_clone include: [ :pockets, { pockets: :items } ]
但這不起作用:由於某種原因,該Backpack
字段填寫,但他Pockets
及其Items
是空的。我嘗試了幾乎所有想到的:檢查嵌套對象的路由,嘗試使用和不使用deep_cloning,仍然無法找到嵌套對象,這讓我想知道,是否可以初始化帶預填充嵌套的表單楷模?
編輯:
好了,由於某些原因,當我把一個
<% @backpack.pockets.each do |pocket| %>
<%= pocket.title %>
<% end %>
它顯示了所有的口袋冠軍,這意味着我成功地克隆了揹包,但是,使用這個:
<%= f.simple_fields_for :pockets, @backpack.pockets do |pocket| %>
<%= render 'pocket', f: pocket %>
<% end %>
什麼都不顯示。