Ruby on rails 嵌套形式和链接到函数

Ruby on rails 嵌套形式和链接到函数,ruby-on-rails,nested-forms,link-to-function,Ruby On Rails,Nested Forms,Link To Function,我有这样一个嵌套表单: <% form_for setup_training(@training), :url => admin_trainings_path, :html => { :class => :form } do |f| -%> <!-- begin of form --> <!-- content of :partial => "day_form" --> <% f.fields_for :days do |days

我有这样一个嵌套表单:

<% form_for setup_training(@training), :url => admin_trainings_path, :html => { :class => :form } do |f| -%>
<!-- begin of form -->
<!-- content of :partial => "day_form" -->
<% f.fields_for :days do |days_form| %>
    <%= render :partial => "admin/days/form_inner", :locals => { :f => days_form }%>    
<% end %>
<!-- end of content of :partial => "day_form" -->
<%=  link_to_function("[+] Ajouter une date", nil, :id => "add-place-and-dates-link") do |page|
    page.insert_html :bottom, "place-and-dates-inner", :partial => "day_form", :locals => { :f => f }
end %>

<% end -%>
admin|u路径,:html=>{:class=>:form}do | f |-%%>
“admin/days/form_-inner”,:locals=>{:f=>days_-form}%>
“添加地点和日期链接”)do |页|
page.insert_html:bottom,“内部的地点和日期”,:partial=>“day_form”,:locals=>{:f=>f}
结束%>
第一次加载页面时,块的第一个字段_的id为0

我第一次单击“添加日期”时,将为块创建一个id为1的新字段\u

然后,每次我点击“添加日期”时,都会显示一个新的块字段,但id保持为1

HTML示例可能更为明确,以下是我得到的输出:

<!-- This part is generated when i display /new, id is 0 -->
<label class="label" for="training_days_attributes_0_place_id">Lieu</label>
<input class="text_field" id="training_days_attributes_0_place_id" name="training[days_attributes][0][place_id]" size="30" type="text">

<!-- This part is generated when i click on "add a new date", id is 1 -->
<label class="label" for="training_days_attributes_1_place_id">Lieu</label>
<input class="text_field" id="training_days_attributes_1_place_id" name="training[days_attributes][1][place_id]" size="30" type="text">

<!-- This part is generated when i click on "add a new date" a second time, id is 1, but it should be 2 --> 
<label class="label" for="training_days_attributes_1_place_id">Lieu</label>
<input class="text_field" id="training_days_attributes_1_place_id" name="training[days_attributes][1][place_id]" size="30" type="text">

代替;场所,处所
代替;场所,处所
代替;场所,处所

谢谢你的帮助

如果查看页面源代码中的内联javascript,您将看到link_to_函数包含静态html,该html将被插入到位置和日期内部容器中。这不会更改,因为它是在服务器上生成并发送给用户的


要解决这个问题,您最好计算客户端以前插入到位置和日期中的容器数量,并在模板中相应增加。老实说,我一直不喜欢这种内联链接到函数的东西。

谢谢你的回答。事实上,我尝试使用link_to_remote函数,在渲染更新中添加一个新的表单字段,但我不知道如何将表单(f)传递给它。如果你有任何建议,请随时告诉我;-)关于这个问题,有几位铁路专家应该能帮你解决。:)