So I have a Book, and a Book has_many :authors. When adding a book the user can choose to add as many authors as they want. Is there any simple rails way to accomplish this that I''m missing? What I''ve ended up doing is dynamically generating first name/last name fields for n number of authors in the template, along the lines of: <% @authors = @search_result.authors || [","] i = 1 -GaGYRTUc+C+N7sh4/YkoqQ@public.gmane.org do |author| %> <tr> <td>Author First Name:</td> <td><%= text_field_tag "author_#{i}_first_name", author.split(/\s*,\s*/)[0], "size" => 20 %></td> </tr> <tr> <td>Author Last Name:</td> <td><%= text_field_tag "author_#{i}_last_name", author.split(/\s*,\s*/)[1], "size" => 20 %></td> </tr> <% i = i.next end %> So the add book page can be triggered from a search result, so I either loop through all of the authors for the resulting book and create one set of author controls for each author, or just create one empty set of controls. The fields are named author_1_first_name, author_1_last_name and so on. Then inside of a transaction in the controller I loop from 1 to n and do the following: Book.transaction(@book) if @book.save i = 1 while last_name = @params["author_#{i}_last_name"] author = Author.new author.book_id = @book.id author.last_name = last_name author.first_name = @params["author_#{i}_first_name"] author.save i = i.next end end end Now ignoring the fact that this isn''t a reliable way to find all the author inputs (i.e., if they enter a last name for the first and third author, but not the second, it will stop after the first), I feel like there''s got to be a better way to accomplish this. On the edit page for supporting multiple authors all I had to call was Author.update(params[:author].keys, params[:author].values). Is there something similar for adding that I''m missing? Thanks, Joshua