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,

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,

You should just be able to do child.parent