2

我有一个 Rails 3 应用程序,其中用户有多个地址。我正在尝试制作一个表单,用户可以在其中添加字段以通过单击加号图标来创建新地址。问题是我无法使用 javascript 将具有正确名称的字段添加到我的 simple_form 中。

这些字段很好地添加到我的视图中,但它们都具有相同的名称: user[addresses_attributes][0][name]而不是user[addresses_attributes][0 to x number][name]. 因此,我无法保存新地址...有人可以帮助我吗?

我的 edit_addresses.html.erb :

<%= simple_form_for(current_user) do |f| %>
  <% current_user.addresses.each do |address| %>
    <div class="address_preview">
      <%= f.simple_fields_for :addresses, address do |a| %>
        <%= a.input :name %>
        <%= a.input :description %>
      <% end %>
    </div>
  <% end %>
<% end %>
<a href='<%= new_address_path(current_user) %>' data-remote='true'>Add</i></a>

当用户单击“添加”时,他将重定向到我的 new.js.html 文件:

$('#addresses_container').append('<%= j render partial: 'new_address', locals: { target: @address } %>');

而“new_address”部分是:

<div class="address_preview">
  <%= simple_form_for(current_user) do |f| %>
    <% f.simple_fields_for :addresses, target do |t| %>
      <%= t.input :name %>
      <%= t.input :description %>
    <% end %>
  <% end %>
</div>
4

1 回答 1

1

这个答案很长,但在Railscasts #197中。

于 2013-09-27T12:45:04.727 回答