Forum: Ruby on Rails Accessing Member Object Methods

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
idflyfish (Guest)
on 2008-12-21 02:08
(Received via mailing list)
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!
Maurício L. (Guest)
on 2008-12-21 06:51
(Received via mailing list)
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 %>


-
Maurício Linhares
http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/
(en)
Marnen L. (Guest)
on 2008-12-22 06:37
(Received via mailing list)
On Dec 20, 11:50 pm, "Maurício Linhares" <removed_email_address@domain.invalid>
wrote:
[...]
>     <% end %>
Um, those last two should be g.text_field .
>
> <% end %>
>

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

Best,
--
Marnen Laibow-Koser
removed_email_address@domain.invalid
http://www.marnen.org
This topic is locked and can not be replied to.