我有一個帶有belongs_to供應商的開支的Rails應用程序。窗體中的Rails部分窗體
當用戶添加新的費用時,他們可能需要添加新的供應商。
我想我可以只是添加一個按鈕和一個供應商的部分費用形式。
像這樣:
<%= simple_form_for @expense, :html => {:class => 'form-horizontal'} do |f| %>
<div class="span5">
<a data-toggle="modal" href="#vendorform">
<p class="pull-right btn btn-primary btn-mini">New Vendor</p></a>
<%= render :partial => "vendors/vendorform" %>
</a>
<%= f.association :vendor, :label_method => :vendor_name, :label => 'Vendor', collection: Vendor.order('vendor_name ASC') %>
的_vendorform.html.erb看起來是這樣的:
<div id="vendorform" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="vendorformLabel" aria-hidden="true">
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h4 id="vendorformLabel">Add Vendor</h4>
</div>
<div class="modal-body">
<%= simple_form_for Vendor.new do |f| %>
(bunch of fields)
</div>
<div class="modal-footer">
<%= f.submit 'Save Vendor', :class => 'btn btn-mini btn-primary' %>
<a class="btn btn-mini" data-dismiss="modal" href="#">Close</a>
<% end %>
</div>
</div>
這部分顯示了確定。但是,供應商記錄不會被創建。 部分的提交實際上以某種方式觸發提交給費用。頁面會返回所有必需的費用字段爲紅色。
我認爲這是張貼到費用控制器當供應商部分按下f.submit
按下!
我需要費用控制器中的東西嗎?
或者還有更好的方法嗎?
感謝您的幫助!
您如何通過單擊供應商表單上的提交按鈕或單擊費用表單上的提交按鈕來創建供應商對象? – vee
單擊部分供應商表單中的按鈕。但是,它看起來像張貼到費用控制器 - 不知道爲什麼? – Reddirt
基本上你已經嵌套了'html'表單元素。你不應該那樣做。您應該移動另一個部分中的字段,然後在'fields_for'中渲染該部分,以便也可以自動創建關聯。希望這是有道理的! – vee