我有一个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>
这部分显示OK。但是,供应商记录无法创建。 部分的提交实际上以某种方式触发了费用的提交。页面返回时所有必需的费用字段为红色。
我认为当按下Vendor partial中的f.submit
按钮时,它会发布到Expenses控制器!!!
我是否需要费用控制器中的某些内容?
或者有更好的方法吗?
感谢您的帮助!
答案 0 :(得分:0)
您确定供应商部分与费用表单位于同一文件夹中吗?如果没有,你应该
<%= render :partial => "folder/vendorform" %>
答案 1 :(得分:0)
如果您有嵌套属性,则应使用有助于管理关联的simple_fields_for
方法。然后,删除供应商表单的提交按钮,并将其添加到费用表单中。所以供应商表格是 -
<div class="modal-body">
<%= simple_form_for Vendor.new do |f| %>
(bunch of fields)
<% end %>
</div>