2

I have a rails 3 application where a user has_many addresses. I'm trying to make a form in which a user can add fields to create new addresses by clicking on a plus icon. The issue is that I can't add fields with correct name into my simple_form with javascript.

The fields are well added to my view, but they all have the same name : user[addresses_attributes][0][name] instead of user[addresses_attributes][0 to x number][name]. Because of that, I can't save new addresses... Can someone help me ?

my 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>

When a user click on "Add" he is redirect_to my new.js.html file:

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

And the 'new_address' partial is:

<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>

1 Answer 1

1

This answer is very long, but is in Railscasts #197.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.