嵌套表单更新问题

时间:2015-01-30 08:03:14

标签: ruby twitter-bootstrap ruby-on-rails-4

我正在使用rails 4,我在嵌套表格中遇到问题。我在我的应用程序中使用了嵌套表单,并通过它将值正确地存储到数据库中。我已经正确使用了强大的参数。但问题是,当我更新相同的表单时,嵌套的字段值不会显示在受尊重的文本框中。如何修复此问题? 这是我在我的控制器中使用的

def vendor_info_params
  params.require(:vendor_info).permit(:name, :primary_contact_name, :phone, :address, :city,
  :vendor_references_attributes=>[:id, :vendor_info_id, :name, :email])
end

这就是我在_form.html.erb

中使用的内容
<%= f.fields_for :vendor_references, @vendor_info.vendor_references.build do |builder| %>
     <%= render "vendor_references", :f => builder %>
<% end %>

1 个答案:

答案 0 :(得分:1)

您在fields_for@vendor_info.vendor_references.build

中指定了一个集合

build方法是new的别名,因此您的集合只包含一个新的供应商参考。如果您想查看所有参考文献,请执行以下操作:

<%= f.fields_for :vendor_references, @vendor_info.vendor_references do |builder| %>
     <%= render "vendor_references", :f => builder %>
<% end %>

如果您需要为每个更新或新呼叫提供新参考,您可以在控制器方法中添加它,如:

def new
  @vendor_info = VendorInfo.new
  @vendor_info.vendor_references.build
end