我有一個創建發票的頁面。有一個單獨的部分允許您向發票添加付款。我想要做的是添加創建發票時創建付款的功能。Rails在另一個表單中渲染表單的一部分
我想呈現「創建付款」窗體查看到「創建發票」窗體視圖。我怎樣才能做到這一點?下面是一些代碼:
發票表單視圖(注意渲染調用):
<%= form_for(@contract) do |f| %>
<div class="field">
f.label "Add payment?"
<div id="pay_form">
<%= render 'payments/pay_form' %>
</div>
</div>
(_pay_form.html.erb)從創建付款形式的部分(請注意,我不包括的form_for標記這裏,是因爲我不想旁邊的發票頁面上的其他形式以上的內部形式):
<div class="field">
<%= f.label 'Amount Paid:' %>
<%= f.text_field :amount %>
</div>
<div class="field">
<%= f.label 'Payment Method' %>
<%= f.select :method, %w(Cash Credit Check) %>
</div>
的主要問題是f
變量的部分不存在。即使我將Invoice的f
var分配給它的形式,這些參數的名稱將是params[:invoice][:amount]
而不是params[:payment][:amount]
。看看我在說什麼?
要做到這一點,最好的方法是什麼?
你檢查[accepts_nested_attributes_for](http://api.rubyonrails.org/classes /ActiveRecord/NestedAttributes/ClassMethods.html)和[fields_for helper](http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for)? – 2012-08-03 20:01:36