2011-12-20 106 views
0

我仍然試圖讓我的表單使用Ryan Bates Nested_fom插件工作。問題是我有一個2級嵌套窗體,當我使用f.link_to_add函數時,它只添加第一級而不是第二級動態...Rails 2級嵌套表單動態添加字段

當我點擊添加鏈接時,它只創建對於嵌套而不是2周連接第二嵌套層次的人1級新線...

爲了您的信息模型是:pinvoices有很多:pinvlines(第一嵌套級)和:pinvlines有許多:法分(第二嵌套級別)。

這裏是主要形式的代碼:

<%= javascript_include_tag 'javascript_pinvlines_fields_new' %> 
<%= nested_form_for @pinvoice do |f| %> 
<% if @pinvoice.errors.any? %> 
<div id="error_explanation"> 
<h2><%= pluralize(@pinvoice.errors.count, "error") %> prohibited this pinvoice from being saved:</h2> 
<ul> 
<% @pinvoice.errors.full_messages.each do |msg| %> 
<li><%= msg %></li> 
<% end %> 
</ul> 
</div> 
<% end %> 
<p> 
<%= f.label :contact %> 
<%= f.text_field :contact, :id => 'test' %> 
<%= f.label :date_facture %> 
<%= f.date_select :date_facture %> 
<%= f.label :montant_total %> 
<%= f.text_field :montant_total %> 
<br /> 
<br /> 
<div class="lignes"> 
<%= f.fields_for :pinvlines %> 
</div> 
<%= f.link_to_add "Ajouter une ligne", :pinvlines %> 
<br /> 
<p> 
<div class="actions"> 
<%= f.submit %> 
</div> 
</p> 
<% end %> 

那麼這裏是部分:

<%= f.label :description %> 
<%= f.text_field :description %> 
<%= f.label :compte_id %> 
<%= f.collection_select(:compte_id, @compte, :id, :nom, {:prompt => "Type de charge"}) %> 
<%= f.label :quantite %> 
<%= f.text_field :quantite, :class => "ip", :size => 6 %> 
<%= f.label :prix_unitaire %> 
<%= f.text_field :prix_unitaire, :class =>"ip", :size => 6 %> 
<%= f.label :montant_HTVA %> 
<%= f.text_field :montant_HTVA, :size => 6 %> 
<%= f.link_to_remove "remove" %> 
<p> 
<%f.fields_for (:lignes) do |b|%> 
<%= b.label :journal_id %><br /> 
<%= b.text_field :journal_id %> 
<%= b.label :compte %><br /> 
<%= b.text_field :compte %> 
<%= b.label :compte_id %><br /> 
<%= b.text_field :compte_id %> 
<%= b.label :montant %><br /> 
<%= b.text_field :montant %> 
</p> 
<%end%> 

控制器看起來像:

def new 
@pinvoice = Pinvoice.new 
@compte = Compte.find(:all) 
1.times do 
pinvline = @pinvoice.pinvlines.build 
2.times{pinvline.lignes.build} 
end 

respond_to do |format| 
    format.html # new.html.erb 
    format.xml { render :xml => @pinvoice } 
end 
end 

有一個天才Jquery和rails來幫助我處理這個非常棘手的問題......非常感謝。

+0

我想你沒有答案的原因是因爲大多數人從未使用過nested_form_for。爲什麼不按照舊時尚的方式來做呢?這並不困難。 – drhenner 2011-12-20 14:27:24

+0

感謝您的評論。舊時尚的方式?你的意思是插件的嵌套形式嗎? – Dannoel 2011-12-20 15:08:26

+0

舊的時尚方式只是使用form_for和fields_for – drhenner 2011-12-27 18:55:35

回答

1

謝謝你們。我終於完成了這個使用老派的方式:form_for和fields_for

相關問題