Forum: Ruby on Rails Changing routes

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Elias O. (Guest)
on 2008-11-07 22:55
(Received via mailing list)
Hello,

Well I am working on an app and wanted to make some changes on the
URL's. I have the following:

#---
map.resources :groups do |groups|
    groups.resources :events, :member => { :invite => :get }
end
#---

So my events are mapping into:

#---
www.xxx.com/groups/1/events/2
#---

What I want to do now is take out the 'group' from there and only
leave the id. Make it look like this:

#---
www.xxx.com/1/events/2
#---

I tried something like the following and now I have an events_path
route that works.

#---
map.events ':group_id/events', :controller => 'events', :action =>
'index'
#---

My question is: Should I then repeat this same line 5 times to map all
the other actions? That without counting the member actions?

map.events_new ....
map.events_create...
...
..

It just seems wrong and tedious. It's there any other way to do this?

Thanks for your attention,

Elías
Elias O. (Guest)
on 2008-11-08 18:35
(Received via mailing list)
Hello,

Any ideas, or is this not a very bright idea after all?

Thanks,

Elioncho
bbtosurf (Guest)
on 2008-11-10 17:44
(Received via mailing list)
Hmmm I am not pretty sure, but try checking the path_prefix and
name_prefix methods.
Elias O. (Guest)
on 2008-11-10 18:25
(Received via mailing list)
Hello,

Well I tried those methods, but that doesn't solve the problem. It
seems to me that when using map.resources there's no way of taking the
controller name out of there. I think the only way is mapping each
routes independently, which I don't and that will get long.

Thanks,

Elías
Elias O. (Guest)
on 2008-11-10 18:27
(Received via mailing list)
Hmmm, what I was trying to say in my last sentence is that mapping
every route independently will be a tedious task.
Elias O. (Guest)
on 2008-11-11 21:59
(Received via mailing list)
So, path_prefix indeed worked.

You can use:

map.resources :events, :path_prefix => '/:group_id'

and it works! Just in case, anyone encounters this in the future.
This topic is locked and can not be replied to.