Forum: Ruby on Rails New View Example With Child Object?

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Don S. (Guest)
on 2006-01-14 01:43
Could somebody point me to some example code?  This must be simple, I
just can't find any examples.  I need a new view (new.rhtml) to include
the creation of a child object.  I have a table for servers (Servers)
and a table for IP Addresses (Ips).

  has_many  :ips
  belongs_to :server

In my new.rhtml I want the IP entered to become a record in the Ips
table.  The Ips table is very simple.  It has two rows, id and
server_id.  Where would I look for example code for new.rhtml and

Thanks for the help!

 - Don
Don S. (Guest)
on 2006-01-17 02:05
Any suggestions here?  Thanks.

 - Don
Wilson B. (Guest)
on 2006-01-17 04:07
(Received via mailing list)
On 1/16/06, Don S. <removed_email_address@domain.invalid> wrote:
> Any suggestions here?  Thanks.
>  - Don

Here's an example that handles a one-to-one relationship between
Since you need multiple IPs per server, you'll want to work out some
way to address that in the view.  One way would be with Ajax and/or
RJS templates; another would be to let the user enter a
comma-separated list of IPs.. yet another would be to ask how many IPs
there will be up front, before showing the 'new' template, and build
that many form entries via a partial.

  model :server
  model :ip

def new
  @server =[:server])
  @ip =[:ip])
  @server.ips << @ip
  if and
    flash[:notice] = "All systems Go."
    redirect_to :action => 'show', :id => @server

#I've omitted various useful things like labels, help text, etc.
<%= start_form_tag :action => 'new' %>
  <%= text_field 'server', 'some_property' %>
  <%= select 'server', 'something_else', some_list_of_options %>
  <%= text_field 'ip', 'address' %>
  <%= submit_tag "Create Server" %>
<%= end_form_tag %>

Every input field value for 'ip' will be available in params[:ip] once
this form is posted, and every 'server' input field will be found in

Saving the parent object (@server) also saves any unsaved children, so
the new Server and Ip objects are both saved in one step.
This topic is locked and can not be replied to.