Noob question on associated records and their controller structure

Hi,

I have controllers for two models between which there exists a
belongs_to/has_one relationship.

How do I reference the parent model object in the child controller so
that I can later recover the child object in the parent controller,
i.e., create and “attach” the child to the parent model for later
recovery?

I would have guessed it was something like as follows:

class ChildController…

def create
@parent = ParentModel.find(params[:id]) # How to get “current”
parent from database?
@parent.child = ChildModel.new(params[:child])

Any thoughts?

Grary

Grary wrote:

Hi,

I have controllers for two models between which there exists a
belongs_to/has_one relationship.

How do I reference the parent model object in the child controller so
that I can later recover the child object in the parent controller,
i.e., create and “attach” the child to the parent model for later
recovery?

If you have your associations set up properly, this is automatic.

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

Grary wrote:

Hi,

I have controllers for two models between which there exists a
belongs_to/has_one relationship.

How do I reference the parent model object in the child controller so
that I can later recover the child object in the parent controller,
i.e., create and “attach” the child to the parent model for later
recovery?

I would have guessed it was something like as follows:

class ChildController…

def create
@parent = ParentModel.find(params[:id]) # How to get “current”
parent from database?

Don’t bother finding the parent model if you already have the ID.
That’s an extra query for no reason in most cases.

@parent.child = ChildModel.new(params[:child])

Oh, on second reading, I see what you’re asking. Check out nested
resources and accepts_nested_attributes_for. Also read the Rails guide
on associations if you haven’t already.

Any thoughts?

Yes, try it before you ask! :slight_smile: Rails makes this simple.

Grary

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

You should just be able to do child.parent


Jeremy C.
http://twitter.com/jeremychase

On Tue, Mar 9, 2010 at 12:51 PM, Marnen Laibow-Koser