Accessing Member Object Methods

Hello,

     I am hoping one of you Rails gurus can help a poor newb.

     I have a User model and a Contact model. The user Model
has_one :contact. I would like to use the users/new view to create a
new user as well as the related contact. However I can't figure out
how to add the appropriate text_fields to the form to about info for
the related contact. Can anyone point me in the right direction?

Thanks!

At your controller:

class UsersController < ApplicationController

    def new
        @user = User.new
        @contact = @user.build_contact
    end

    def create
        @user = User.new( params[:user] )
        @contact = @user.build_contact( params[:contact] )
        if @user.valid? and @contact.valid?
            @user.save
            @contact.save
            respond_to do |format|
                format.html do
                    flash[:notice] = "User saved"
                    redirect_to users_path
                end
            end
        else
            render :action => 'new'
        end
    end

end

At your new.html.erb

<% form_for @user do |f| %>

    Login: <%= f.text_field :login %> <br/>
    Email: <%= f.text_field :email %> <br/>

    <% fields_for :contact do |g| %>
       Name: <%= text_field :email %>
       Address: <%= text_area :address %>
    <% end %>

<% end %>

[...]

At your new.html.erb

<% form_for @user do |f| %>

Login: &lt;%= f\.text\_field :login %&gt; &lt;br/&gt;
Email: &lt;%= f\.text\_field :email %&gt; &lt;br/&gt;

&lt;% fields\_for :contact do |g| %&gt;
   Name: &lt;%= text\_field :email %&gt;
   Address: &lt;%= text\_area :address %&gt;
&lt;% end %&gt;

Um, those last two should be g.text_field .

<% end %>

See http://www.stephenchu.com/2008/03/boost-your-controller-paramsfu.html
for an excellent series of blog posts detailing this and other similar
tricks.

Best,