为< fieldset>创建唯一的ID.使用form_for Rails嵌套模型表单时 [英] Creating unique id for <fieldset> when using form_for Rails Nested Model Form
问题描述
我具有此Railscast样式的嵌套模型形式 http://railscasts.com/episodes/196-nested-model-form-revised?view = asciicast
I have a nested model form in the style of this Railscast http://railscasts.com/episodes/196-nested-model-form-revised?view=asciicast
我需要给每个标签一个唯一的ID.当前,生成的每个字段都有一个唯一的ID和名称,该名称和名称由帮助程序方法给每个关联记录分配一个唯一的ID.因此,这是需要注意的.但是,此表单具有未分配ID的字段集"标签.我需要为每个字段集使用唯一的ID,以进行jQuery操作.
I need to give each tag a unique ID. Currently, each field generated has a unique ID and name given by a helper method that assigns a unique ID to every association record. So that is taken cared of. However, this form has "fieldset" tags which isn't assigned an ID. I need a unique ID for each fieldset for jQuery manipulation purposes.
具体来说,如何为为活动"记录生成的每个字段集赋予唯一的CSS标签ID?下面发布的是我的表单的创建方式.谢谢
Specifically, how do I do give each fieldset generated for an "Activity" record a unique CSS tag ID? Posted below is how my form is created. Thank you
_form.html.erb
<%= form_for(@trip) do |f| %>
<%= f.fields_for :days do |builder| %>
<%= render 'day_fields', f: builder %>
<% end %>
<%= link_to_add_fields "Add Day", f, :days %>
_day_fields.html.erb部分
<fieldset>
<%= f.label :summary, "Day Summary" %><br />
<%= f.text_area :summary, :rows => 1 %><br />
<%= link_to "remove", '#', class: "remove_fields" %>
<%= f.fields_for :activities do |builder| %>
<%= render 'activity_fields', f: builder %>
<% end %>
<%= link_to_add_fields "Add Activity", f, :activities %>
</fieldset>
_activity_fields.html.erb
<fieldset>
<%= f.label :title, "Activity" %><br />
<%= f.text_field :title, :rows => 1 %><br />
<%= f.hidden_field :_destroy %>
<%= link_to "remove", '#', class: "remove_fields" %>
</fieldset>
推荐答案
如果您使用的是ryanb nested_form gem:
If you are using ryanb nested_form gem :
改为使用 f.index
.并确保您在局部中传递了每个不同的form_builder.
Use f.index
instead. And make sure that you pass every different form_builder in your partials.
例如,如果您这样做
<%= main_form.fields_for :nested1_items do |nested1_form| %>
<%= render partial 'main/nested1_fields', nested1_form: nested1_form %>
<% end %>
_nested1_fields
<fieldset id="nested1-<%= nested1_form.index %>-items">
在此问题中,请参阅我的答案/a>.
See my answer in this question.
这篇关于为< fieldset>创建唯一的ID.使用form_for Rails嵌套模型表单时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!