Forum: Ruby on Rails Initializing list with account creation

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.
nek4life (Guest)
on 2008-12-14 21:54
(Received via mailing list)
I have a model for users and a model for lists and a model for the
items.

I have a one-to-one relationship with the user and the list so only
one list may be created.

I'm having problems when I try to create the list at the same time I
create the user so they are related by the foreign key on the list.
How would I go about doing this.

right now I'm trying

def new
  @user = User.new
  @user.list.build
end

But I get an error message saying that list is nil.  I know the
problem must be with passing the user_id to the list model, but I have
no idea how to do this.
Jeremy W. (Guest)
on 2008-12-14 22:06
nek4life wrote:
> I have a model for users and a model for lists and a model for the
> items.
>
> I have a one-to-one relationship with the user and the list so only
> one list may be created.
>
> I'm having problems when I try to create the list at the same time I
> create the user so they are related by the foreign key on the list.
> How would I go about doing this.
>
> right now I'm trying
>
> def new
>   @user = User.new
>   @user.list.build
> end
>
> But I get an error message saying that list is nil.  I know the
> problem must be with passing the user_id to the list model, but I have
> no idea how to do this.

Try @user.build_list.

If a user could have many lists, you'd use @user.lists.build.
nek4life (Guest)
on 2008-12-15 07:21
(Received via mailing list)
On Dec 14, 3:06 pm, Jeremy Weiskotten <rails-mailing-l...@andreas-
s.net> wrote:
>
>
> Try @user.build_list.
>
> If a user could have many lists, you'd use @user.lists.build.
> --
> Posted viahttp://www.ruby-forum.com/.

Thanks Jeremy.  I ended up using your solution in the create method
after initializing the object in the new method.

def new
 @user = User.new
 @list = List.new
end

def create
  @user = User.new(params[:user])
  @user.build_list
end
This topic is locked and can not be replied to.