我有一个页面,您可以在其中创建发票。有一个单独的部分允许您将付款添加到发票中。我想要做的是在创建发票时添加创建付款的功能。
我想将“创建付款”表单视图呈现到“创建发票”表单视图中。我怎样才能做到这一点?这是一些代码:
发票表单视图(注意渲染调用):
<%= 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
部分中的变量不存在。即使我f
从表单中分配 Invoice 的 var,参数的名称也将是params[:invoice][:amount]
而不是params[:payment][:amount]
. 明白我在说什么吗?
这样做的最佳方法是什么?