how to create a form for multiple entries?

hi guys,

  I have a fairly simple application for a party.

An "invite" object has many "guest" objects.

When I open up localhost:3000/invites/:id/guests/, I expect to see
the details of the "invite" along with all the guest objects
associated with the given invite.

I would like to have a form whereby there's a checkbox on the left of
each guest entry which represents if the
guest has decided to attend the party (or not).

Nevertheless, I kept getting this error, " undefined method
`guest_path' for #<ActionView::Base:0x0000001138fe88>" when i open the
url above.

I am not sure what I am doing wrong. Anyway, this is how my "~/
looks like. Yes, I am aware this is not following CRUD closely but
it's a very simple app hence I have stripped a lot of things down.

---------- extract start -------------------------------

<h1>Listing guests</h1>

<% @guests.each do |guest| %>
    <% form_for(guest) do |f| %>
      <%= f.error_messages %>

        <%= f.label :name %><br />
        <%= f.text_field :name %>
        <%= f.label :contact_number %><br />
        <%= f.text_field :contact_number %>
        <%= f.label :status %><br />
        <%= f.check_box :status %>
        <%= f.label :email %><br />
        <%= f.text_field :email %>
        <%= f.submit 'Update' %>
    <% end %>
<% end %>

---------- extract end -------------------------------

Any ideas on how to create the multielement form, guys?


I'm not a professional Rails developper but I believe I went through the same kind of issue.
So take a look at this: and possibly part-2 and 3 as well.


It seems that you created the guest and invite routes nested, right?

So, you have to write your form like this:

<% form_for([@invite, guest]) do |f| %>

This form above will use the url: /invites/:invite_id/guests/:id/edit

Some reference:


Nícolas Iensen