我正在尝试在 Rails 4 中实现一个简单的嵌套模型形式。这可能是非常简单的事情,但就是想不通。
所以我有一个编辑视图,在其中创建嵌套字段:
<%= f.fields_for :bankaccounts do |bankaccount| %>
<%= render 'bankaccount_fields', :f => bankaccount %>
<% end %>
这些工作正常,甚至链接:
<%= link_to_add_association 'add', f, :bankaccounts , :class => "link"%>
工作正常。单击时,这些字段将按应有的方式显示。
真正的问题是,当我提交表单时。它不会将已输入这些添加字段的参数发送回 Web 服务器。(在 webrick 控制台的任何地方都看不到它们)表单只提交旧的银行帐户参数,因为它应该:
"bankaccounts_attributes"=>{"0"=>{"iban"=>"121221", "swift"=>"121212", "id"=>"3"}, "1"=>{"iban"=>"33333", "swift"=>"33333", "id"=>"9"}, "2"=>{"iban"=>"121212", "swift"=>"211212", "id"=>"10"}
以上属性应包含四个银行帐户。
FWIW:Turbolinks 也被禁用。
编辑:这是来自 bankaccount_fields 部分的代码:
<div id="tilit">
<div class="area-form">
<div class="col">
<div class="box-row">
<label for="iban" class="label">Iban</label>
<div class="input-row no-italic">
<%= f.text_field :iban, :id => "iban", :class => "input-text" %>
</div>
</div>
</div>
<div class="col">
<div class="box-row">
<label for="swift" class="label">Swift</label>
<div class="input-row no-italic">
<%= f.text_field :swift, :id => "swift", :class => "input-text" %>
</div>
</div>
</div>
</div>
编辑:调试器输出 reg。参数:
(rdb:2) @_params {"utf8"=>"✓", "_method"=>"patch", "authenticity_token"=>"181xsndllcPmpvpMaDi70IXh8SpaSYxs0eiSo19qwfI=", "producer"=>{"name"=>"Anne" , "RH_nro"=>"", "ytunnus"=>"", "prepaymentpercentage"=>"", "streetaddress"=>"", "zip"=>"", "city"=>"", " www"=>"", "bankaccounts_attributes"=>{"0"=>{"iban"=>"13123123", "swift"=>"121212", "id"=>"3"}, "1" =>{"iban"=>"33333", "swift"=>"33333", "id"=>"9"}, "2"=>{"iban"=>"121212", "swift"=>"211212", "id"=>"10"}}}, "commit"=>"TALLENNA", "action"=>"update" , "控制器"=>"生产者", "id"=>"54"}
应该多包含一条 bankaccount_attributes 记录,但只包含那些不是动态添加的。
我已经挠了好几个小时了,所以任何帮助都将不胜感激。
如果问题形成不好也很抱歉,这是我的第一个:)