Forum: Ruby on Rails Problem passing id of parent model to child

5c17a9b2e2e596b94ea87cc557929124?d=identicon&s=25 why-el (Guest)
on 2012-11-01 22:03
(Received via mailing list)
Hey fellas,

I have an Organization model with many projects. I have a link to a new
project from the organization's show view, like so:
new_organization_project_path (@organization). I was hoping Rails would
get
the id of the organization from the instance I am passing and populate
project.organization_id, but to no avail. The db rollbacks back and get
redirected to the new project page. Any ideas? How would you normally do
this?

Best,
6276db3f126cef8682f9374f75734acc?d=identicon&s=25 Linus Pettersson (Guest)
on 2012-11-01 22:13
(Received via mailing list)
What path do you get? It should be something like
"/organizations/:id/projects/new". This is where you can add a form for
example to add a new project.

Do you try to POST to that path above? If so, that's wrong (it's for GET
requests). Read more about nested resources here:
http://guides.rubyonrails.org/routing.html#nested-resources

//Linus


Den torsdagen den 1:e november 2012 kl. 22:02:36 UTC+1 skrev why-el:
5f94b9b346c2aa648a80bc259978e5bc?d=identicon&s=25 Colin Law (Guest)
on 2012-11-01 22:22
(Received via mailing list)
On 1 November 2012 21:02, why-el <wael.khobalatte@gmail.com> wrote:
> Hey fellas,
>
> I have an Organization model with many projects. I have a link to a new
> project from the organization's show view, like so:
> new_organization_project_path (@organization). I was hoping Rails would get
> the id of the organization from the instance I am passing and populate
> project.organization_id, but to no avail. The db rollbacks back and get
> redirected to the new project page. Any ideas? How would you normally do
> this?

Have a look at the the Rails Guide on debugging.  It will show you
techniques that you can use to debug your code.
Hint - start by looking in development.log to see what action is
called and what the parameters are.

Colin
5c17a9b2e2e596b94ea87cc557929124?d=identicon&s=25 why-el (Guest)
on 2012-11-02 00:33
(Received via mailing list)
Yes that's what I get as a path. I have solved this issue. Its silly
really, it turns out I needed to make an @organization instance
available
throughout my projectsController, so I made a before filter to fetch it
based on the url.

Quick question though, do I need to update all the controller methods to
reference the parent model whenever I have a one to many relationship
like
this one (changing everything to @organization.projects.someMethod)?
This
looks tedious to me. Does Rails help with this?
5f94b9b346c2aa648a80bc259978e5bc?d=identicon&s=25 Colin Law (Guest)
on 2012-11-02 09:40
(Received via mailing list)
On 1 November 2012 23:32, why-el <wael.khobalatte@gmail.com> wrote:
> Yes that's what I get as a path. I have solved this issue. Its silly really,
> it turns out I needed to make an @organization instance available throughout
> my projectsController, so I made a before filter to fetch it based on the
> url.

As a beginner I suggest you work through a good tutorial on Rails to
give you understanding of the basics.  railstutorial.org is good and
is free to use online.


>
> Quick question though, do I need to update all the controller methods to
> reference the parent model whenever I have a one to many relationship like
> this one (changing everything to @organization.projects.someMethod)? This
> looks tedious to me. Does Rails help with this?

I don't understand the question.  Can you give a particular example?

Colin
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.