Daniel
Daniel

Reputation: 461

How to generate multiple text fields for nested attributes in Rails

I have the following problem:

I want to generate multiple text fields in a form, so that I have the following result in the end:

[
  {foo: 0},
  {foo: 1},
  {foo: 10},
  {foo: 11},
  {foo: 100}
]

In my form I wrote the following Code:

<%= f.fields_for(:foo_associates, @bar.foo_associates) do |ff| %>
  <%= ff.text_field(:maincompany_id) %>
  <%= ff.text_field(:maincompany_id) %>
  <%= ff.text_field(:maincompany_id) %>
  <%= ff.text_field(:maincompany_id) %>
  <%= ff.text_field(:maincompany_id) %>
<% end %>

So the rendered HTML should look like this:

<input name="company[foo_associates_attributes][0][foo]" />
<input name="company[foo_associates_attributes][1][foo]" />
<input name="company[foo_associates_attributes][2][foo]" />
<input name="company[foo_associates_attributes][3][foo]" />
<input name="company[foo_associates_attributes][4][foo]" />

But it looks like this:

<input name="company[foo_associates_attributes][0][foo]" />
<input name="company[foo_associates_attributes][0][foo]" />
<input name="company[foo_associates_attributes][0][foo]" />
<input name="company[foo_associates_attributes][0][foo]" />
<input name="company[foo_associates_attributes][0][foo]" />

And my result looks like this:

[
  {foo: 0}
]

What am I doing wrong? All answers are appreciated.

Upvotes: 0

Views: 110

Answers (1)

dileep nandanam
dileep nandanam

Reputation: 2895

In your controller

#new

5.times {@bar.foo_associates.build}

In form

<%= f.fields_for(:foo_associates) do |ff| %>
  <%= ff.text_field(:foo) %>
<% end %>

Upvotes: 3

Related Questions