# Quick and easy has\_many routes question

**URL:** <https://www.ruby-forum.com/t/quick-and-easy-has-many-routes-question/186500>\
**Category:** Rails\
**Created:** [April 8, 2010, 2:33am UTC](https://www.ruby-forum.com/t/quick-and-easy-has-many-routes-question/186500 "2010-04-08T02:33:32Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![davidz101](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/f0a364/32.png) [@davidz101](https://www.ruby-forum.com/u/davidz101)\
**Post date:** [April 8, 2010, 2:33am UTC](https://www.ruby-forum.com/t/quick-and-easy-has-many-routes-question/186500/1 "2010-04-08T02:33:32Z")

</div>

Hey,

i have- map.resources :courses, :has\_many =\> :pages

now what if i wanted for courses to has\_many =\> :forums as well?

can i just do map.resources :courses, :has\_many =\> :pages, :forums

?? because that doesn’t work. whats the syntax for- has many blank AND  
blank…

lol reall noobie i know, but i just don’t know how to do it.

---

<div class="post-metadata">

**Author:** ![davidz101](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/f0a364/32.png) [@davidz101](https://www.ruby-forum.com/u/davidz101)\
**Post date:** [April 8, 2010, 10:06am UTC](https://www.ruby-forum.com/t/quick-and-easy-has-many-routes-question/186500/2 "2010-04-08T10:06:38Z")

</div>

Have you tried?

map.resources :courses, :has\_many =\> [:pages, :forums]

---

<div class="post-metadata">

**Author:** ![davidz101](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/f0a364/32.png) [@davidz101](https://www.ruby-forum.com/u/davidz101)\
**Post date:** [April 8, 2010, 3:00pm UTC](https://www.ruby-forum.com/t/quick-and-easy-has-many-routes-question/186500/3 "2010-04-08T15:00:33Z")

</div>

oh the brackets. thanks guys. 🙂

---

<div class="post-metadata">

**Author:** ![davidz101](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/f0a364/32.png) [@davidz101](https://www.ruby-forum.com/u/davidz101)\
**Post date:** [April 8, 2010, 9:37am UTC](https://www.ruby-forum.com/t/quick-and-easy-has-many-routes-question/186500/4 "2010-04-08T09:37:56Z")

</div>

> i have- map.resources :courses, :has\_many =\> :pages
> 
> now what if i wanted for courses to has\_many =\> :forums as well?
> 
> can i just do map.resources :courses, :has\_many =\> :pages, :forums

Nope, it would be:

map.resources :courses, :has\_many =\> [:pages, :forums]

You map it to an array. In Ruby any hash style assignments in a method  
call, which this is, but must come at the end to be implicitly converted  
to  
a hash. In the initial example you are doing this:

map.resources(:courses, {:has\_many =\> :pages})

And that works just as well as the normal version, but it’s not as  
readable.  
If you did it your way, Ruby wouldn’t be able to make the last  
arguments a  
hash as you have just a key as the last argument (your :forums looks  
like an  
additional argument to map.resources not a part of :has\_many).

Anyway, answered in the first line of code, hopefully the rest may make  
it  
slightly clearer.

Cheers,

Andy

---

<div class="post-metadata">

**Author:** ![davidz101](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/f0a364/32.png) [@davidz101](https://www.ruby-forum.com/u/davidz101)\
**Post date:** [April 9, 2010, 11:09pm UTC](https://www.ruby-forum.com/t/quick-and-easy-has-many-routes-question/186500/5 "2010-04-09T23:09:30Z")

</div>

oh yeah then what if i wanted–

a has many b, and b has many c, and c has many d

how would i do that in a route? like multiple stacked layers, how  
would i write that in my routes.rb?

---

<div class="post-metadata">

**Author:** ![davidz101](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/f0a364/32.png) [@davidz101](https://www.ruby-forum.com/u/davidz101)\
**Post date:** [April 8, 2010, 5:19pm UTC](https://www.ruby-forum.com/t/quick-and-easy-has-many-routes-question/186500/6 "2010-04-08T17:19:21Z")

</div>

when I have more than one nested ‘has\_many’ resource, i think about  
creating a namespace…  
[http://seanbehan.com/ruby-on-rails/nesting-resources-in-rails-routes-rb-with-namespaces/](http://seanbehan.com/ruby-on-rails/nesting-resources-in-rails-routes-rb-with-namespaces/)  
…this keeps your other controllers (forums, pages) clean and restful
