2010-08-24 101 views
0

我有一个嵌套的形式是这样的:嵌套形式和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| %> 
    <%= 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 -%> 

我第一次加载我的网页,第一fields_for块有ID为0;

我第一次点击“添加日期”,一个新的fields_for块创建id = 1;

接着,每次我碰杯的“添加日期”,显示新的fields_for块,但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"> 

谢谢您的帮助!

回答

0

如果您在页面源代码中查看了您的内嵌JavaScript代码,则会看到您的link_to_function包含将被插入到位置和日期内部容器中的静态html。这不会改变,因为它是在服务器上构建并发送给用户的。

要解决这个问题,您可能最好计数客户端以前插入到地点和日期内部的容器数量,并相应地在您的模板中增加。这种内联link_to_function的东西,我总是不喜欢说实话。

+0

谢谢你的回答。 事实上,我试图使用link_to_remote函数与渲染更新添加一个新的表单字段,但我不知道我怎么可以将我的表单(f)传递给它。 如果您有任何建议,随时欢迎我;-) – 2010-08-24 15:59:59

+0

有一些关于这个问题的railscasts应该帮助你。 :) http://railscasts.com/episodes?search=nested – mark 2010-08-24 16:20:46