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
on 2010-03-09 02:03
on 2010-03-09 18:51
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 marnen@marnen.org
on 2010-03-09 18:53
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! :) Rails makes this simple. > > Grary Best, -- Marnen Laibow-Koser http://www.marnen.org marnen@marnen.org
on 2010-03-09 18:55
You should just be able to do child.parent -- Jeremy Chase http://twitter.com/jeremychase On Tue, Mar 9, 2010 at 12:51 PM, Marnen Laibow-Koser
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.