为 <fieldset> 创建唯一 id使用 form_for Rails 嵌套模型表单时 [英] Creating unique id for <fieldset> when using form_for Rails Nested Model Form

查看:40
本文介绍了为 <fieldset> 创建唯一 id使用 form_for Rails 嵌套模型表单时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个这个 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 的fieldset"标记.我需要每个字段集的唯一 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.

这篇关于为 &amp;lt;fieldset&gt; 创建唯一 id使用 form_for Rails 嵌套模型表单时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆