Parent::Children controller


#1

Hello!

I’m creating a simple blog to test RoR. I’ve created an area to manage
my blog posts by using the “generate controller Admin::Posts”. After
creating my actions, I can acess them by using:

http://localhost:3000/admin/posts/action_here

Everything working till here. But I would like to display a blog
overview here:

http://localhost:3000/admin/

So I’ve created an admin controller: “generate controller Admin” and an
“index” action. The new index action works but, the previous
posts/action_here not anymore.

I think that when I put /admin/posts on the URL and the controller admin
exists, I need to tell that I want to use the posts_controller, not the
admin_controller. Someone knows how can I do that?

Or if someone has a better idea to implement this I’ll be grateful!

Thanks for your attention!


#2

Klaus,

You are correct in thinking that the admin/admin.rb file is screwing
things up. Nested controllers seem to work best when you split your
controllers in groups like: admin/xxx and admin/yyy. Your controllers
would then be under xxx or yyy but not split with some being directly
under admin. You need no special routing configuration to accomodate
this.

Perhaps your best solution right now is to just forget about nesting
the controllers and have it all under admin until you can see how
changing this structure would serve you better.

-Paul


#3

Hi Paul,
thanks for your help!

I’ve found something useful on the book: - It’s about the
config/routes.rb. In this file I can define when to use the post
controller by adding these lines:

Admin::Posts

map.admin_posts ‘admin/posts/:action/:id’,
:controller => ‘admin/posts’,
:requirements => {
:id => /\d+/
}

That’s it!


#4

Hi Paul,
thanks for your help!

I’ve found something useful on the book: Agile Web D. with
Rails - It’s about the config/routes.rb. In this file I can define when
to use the post controller by adding these lines:

Admin::Posts

map.admin_posts ‘admin/posts/:action/:id’,
:controller => ‘admin/posts’,
:requirements => {
:id => /\d+/
}

That’s it!


#5

I forgot to paste the book name. :smiley:

“Agile Web D. with Rails”