Parent::Children controller

39 views
Skip to first unread message

Klaus Paiva

unread,
Dec 31, 2006, 4:31:10 AM12/31/06
to rubyonra...@googlegroups.com
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!

--
Posted via http://www.ruby-forum.com/.

Paul Corcoran

unread,
Jan 1, 2007, 1:53:43 PM1/1/07
to Ruby on Rails: Talk
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

Klaus Paiva

unread,
Jan 3, 2007, 6:57:28 AM1/3/07
to Ruby on Rails: Talk
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!

Klaus Paiva

unread,
Jan 3, 2007, 7:00:31 AM1/3/07
to rubyonra...@googlegroups.com
Hi Paul,
thanks for your help!

I've found something useful on the book: Agile Web Development 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!

--
Posted via http://www.ruby-forum.com/.

Klaus Paiva

unread,
Jan 3, 2007, 7:02:19 AM1/3/07
to Ruby on Rails: Talk
I forgot to paste the book name. :D

"Agile Web Development with Rails"

Klaus Paiva

unread,
Dec 31, 2006, 3:50:26 AM12/31/06
to Ruby on Rails: Talk

Andrew Skegg

unread,
Jan 8, 2007, 10:47:41 PM1/8/07
to rubyonra...@googlegroups.com

One way would be to specify it in the config/routes.rb as such:
map.connect '/admin/posts/:action', :controller => 'posts'

Another might be to create a posts method in the admin controller and
have it redirect to the posts controller (passing all the values
across).

def posts
redirect_to :controller => 'posts', :action => params[:action]
end

There is probably a better way to pass *all* of the params across -
anyone?

Ross Riley

unread,
Jan 9, 2007, 1:56:25 AM1/9/07
to rubyonra...@googlegroups.com
wouldn't.....
map.connect '/admin', :controller => 'admin/posts', :action=>'index'

have the desired effect?


--
Ross Riley
www.sorrylies.com

Reply all
Reply to author
Forward
0 new messages