所以我有這個結構模型:Rails的5 fields_for集合下築巢
document {
structure {
id,
...
},
fields {
field {
id,
...
},
value {
...
}
}
}
而且我想放在一起形式的字段,其中字段將如下所示:
<input type="hidden" name="document[fields][0][field][id]" />
<input type="text" name="document[fields][0][value]" />
<input type="hidden" name="document[fields][1][field][id]" />
<input type="text" name="document[fields][1][value]" />
...
這是目前我在做什麼:
<%= document.fields.each_with_index do |df, i| %>
<%= f.fields_for "fields[]", df do |builder| %>
<p>
<%= builder.label df.field.name %>
<%= builder.fields_for :field do |field_builder| %>
<%= field_builder.hidden_field :id, value: df.field.id %>
<% end %>
<%= builder.fields_for :value do |value_builder| %>
<%= render df.field.edit_view, field: df.field, builder: value_builder %>
<% end %>
</p>
<% end %>
<% end %>
但由此產生的字段名稱是:
document[fields][field][id]
document[fields][value][value]
換句話說,索引缺失。
使用<%= builder.hidden_field :id, value: df.field.id %>
導致正確的格式,但沒有索引(因爲字段對象還沒有id):document[fields][][id]
但這不是值的選項,因爲可能涉及多個字段。
有沒有辦法使用窗體幫助器來做到這一點,或者我所做的只是過於虛無?
編輯:這裏涉及到的車型:
的想法是有一組可配置文檔領域。該結構確定可用字段,而document_field是文檔與包含值的字段之間的關係。
class Field < ApplicationRecord
belongs_to :structure
end
class Document < ApplicationRecord
belongs_to :structure
has_many :document_fields
class DocumentField < ApplicationRecord
belongs_to :document
belongs_to :field
class Structure < ApplicationRecord
has_many :fields
您可以添加模型,嘗試重現您的場景嗎? –
已被添加到文章 – user1456632