# Routes question

**URL:** <https://www.ruby-forum.com/t/routes-question/53024>\
**Category:** Rails\
**Created:** [January 23, 2006, 6:29am UTC](https://www.ruby-forum.com/t/routes-question/53024 "2006-01-23T06:29:07Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![jhnsntmthy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/d07c76/32.png) [@jhnsntmthy](https://www.ruby-forum.com/u/jhnsntmthy)\
**Post date:** [January 23, 2006, 6:29am UTC](https://www.ruby-forum.com/t/routes-question/53024/1 "2006-01-23T06:29:07Z")

</div>

Newbie here, I am trying to set up Routes so that it will look up a  
listing in my directory by sanitized phone number, like the following:

> **[domiain.com](http://www1.domiain.com?backfill=0&domainname=0&searchbox=0&subid4=64cb545237b9ef6fac11d16b)**
>
> Live Chat Customer Support,Abacus Pays,Home Appliance Warranty

which will in turn list all the listings with that phone number (though  
they might be in the Db table with parenthesis and hyphens), if one  
listing, then make it a special render

If anyone could help with my Routes code and my controller, I would  
appreciate it

Tim

---

<div class="post-metadata">

**Author:** ![jhnsntmthy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/d07c76/32.png) [@jhnsntmthy](https://www.ruby-forum.com/u/jhnsntmthy)\
**Post date:** [January 23, 2006, 6:47am UTC](https://www.ruby-forum.com/t/routes-question/53024/2 "2006-01-23T06:47:03Z")

</div>

map.connect ‘:phone’, :controller =\> ‘yourcontroller’

This will invoke yourcontroller at method index, and  
the phone number would be in params[:phone]

I think. 🙂

–  
– Tom M.

---

<div class="post-metadata">

**Author:** ![jhnsntmthy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/d07c76/32.png) [@jhnsntmthy](https://www.ruby-forum.com/u/jhnsntmthy)\
**Post date:** [January 23, 2006, 6:50am UTC](https://www.ruby-forum.com/t/routes-question/53024/3 "2006-01-23T06:50:29Z")

</div>

Tom M. wrote:

> map.connect ‘:phone’, :controller =\> ‘yourcontroller’
> 
> This will invoke yourcontroller at method index, and  
> the phone number would be in params[:phone]

Yes, this does work well enough thank you.

---

<div class="post-metadata">

**Author:** ![jhnsntmthy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/d07c76/32.png) [@jhnsntmthy](https://www.ruby-forum.com/u/jhnsntmthy)\
**Post date:** [September 25, 2007, 10:43pm UTC](https://www.ruby-forum.com/t/routes-question/53024/4 "2007-09-25T22:43:08Z")

</div>

So my routes.rb is like that :

ActionController::Routing::Routes.draw do |map|  
map.home ‘’, :controller =\> “home”

# Admin routes

map.connect ‘admin/category’, :controller =\> ‘admin/category’  
map.connect ‘admin/content’, :controller =\> ‘admin/content’  
map.connect ‘admin/definition’, :controller =\> ‘admin/definition’  
map.connect ‘admin/file’, :controller =\> ‘admin/file’  
map.connect ‘admin/layout’, :controller =\> ‘admin/layout’

# Content route

map.content ‘:category/:content’, :controller =\> “home”, :action  
=\> “show”

# Install the default route as the lowest priority.

map.connect ‘:controller/:action/:id’  
end

It’s so ugly …

## Any idea ?

Nicolas C.

> **[Bounga’s Home](https://www.bounga.org/)**
>
> Thoughts about Ruby, Rails, Hanami, Elixir, Phoenix, Javascript and Unix.

> **[Nicolas Cavigneaux Resume](https://www.cavigneaux.net/)**
>
> Nicolas Cavigneaux Resume

---

<div class="post-metadata">

**Author:** ![jhnsntmthy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/d07c76/32.png) [@jhnsntmthy](https://www.ruby-forum.com/u/jhnsntmthy)\
**Post date:** [September 25, 2007, 10:48pm UTC](https://www.ruby-forum.com/t/routes-question/53024/5 "2007-09-25T22:48:02Z")

</div>

Le 8 janv. 07 à 14:19, Chris H. a écrit :

> unfortunately when using controllers that way, I don’t think there is  
> any way to setup routes any differently. perhaps someone else on the  
> list has some additional insight.

## Ok, thank you for help 🙂

Nicolas C.

> **[Bounga’s Home](https://www.bounga.org)**
>
> Thoughts about Ruby, Rails, Hanami, Elixir, Phoenix, Javascript and Unix.

> **[Nicolas Cavigneaux Resume](https://www.cavigneaux.net)**
>
> Nicolas Cavigneaux Resume

---

<div class="post-metadata">

**Author:** ![jhnsntmthy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/d07c76/32.png) [@jhnsntmthy](https://www.ruby-forum.com/u/jhnsntmthy)\
**Post date:** [September 25, 2007, 10:47pm UTC](https://www.ruby-forum.com/t/routes-question/53024/6 "2007-09-25T22:47:33Z")

</div>

unfortunately when using controllers that way, I don’t think there is  
any way to setup routes any differently. perhaps someone else on the  
list has some additional insight.

one potential problem would be if someone tried to access an admin  
route that did not exist, such as /admin/whatever’. it would not  
match any of your defined admin routes and would then pass to  
‘:category/:content’ which would be routed to ‘home/show’…something  
to watch for. i think one additional route to catch anything else.

‘admin/:missing’ might be needed and could be routed to a 404 page or  
something.

keep in mind that you’re not going to be editing routes much. so while  
you might consider it ugly, it’s only in the routes.rb file and not  
the rest of your code.

you might want to go one extra step and use named routes as that will  
make the rest of your code a bit prettier.

ie

map.category\_admin ‘admin/category’, :controller =\> ‘admin/category’

then any link to that will be

link\_to “Category Admin”, category\_admin\_url, …

rather than

link\_to “Category Admin”, :controller =\> “admin/category”

---

<div class="post-metadata">

**Author:** ![jhnsntmthy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/d07c76/32.png) [@jhnsntmthy](https://www.ruby-forum.com/u/jhnsntmthy)\
**Post date:** [September 25, 2007, 10:51pm UTC](https://www.ruby-forum.com/t/routes-question/53024/7 "2007-09-25T22:51:36Z")

</div>

Le 8 janv. 07 à 14:29, Jean-François a écrit :

> Have you tried :
> 
> map.connect ‘admin/:controller/:action/:id’

## Yes but it doesn’t work.

Nicolas C.

> **[Bounga’s Home](https://www.bounga.org)**
>
> Thoughts about Ruby, Rails, Hanami, Elixir, Phoenix, Javascript and Unix.

> **[Nicolas Cavigneaux Resume](https://www.cavigneaux.net)**
>
> Nicolas Cavigneaux Resume

---

<div class="post-metadata">

**Author:** ![jhnsntmthy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/d07c76/32.png) [@jhnsntmthy](https://www.ruby-forum.com/u/jhnsntmthy)\
**Post date:** [September 25, 2007, 10:52pm UTC](https://www.ruby-forum.com/t/routes-question/53024/8 "2007-09-25T22:52:40Z")

</div>

Nicolas :

> map.connect ‘admin/layout’, :controller =\> ‘admin/layout’
> 
> # Content route
> 
> map.content ‘:category/:content’, :controller =\> “home”, :action  
> =\> “show”
> 
> # Install the default route as the lowest priority.
> 
> map.connect ‘:controller/:action/:id’  
> end
> 
> It’s so ugly …

Have you tried :

map.connect ‘admin/:controller/:action/:id’

– Jean-François.

–  
À la renverse.

---

<div class="post-metadata">

**Author:** ![jhnsntmthy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/d07c76/32.png) [@jhnsntmthy](https://www.ruby-forum.com/u/jhnsntmthy)\
**Post date:** [September 25, 2007, 10:49pm UTC](https://www.ruby-forum.com/t/routes-question/53024/9 "2007-09-25T22:49:50Z")

</div>

Le 6 janv. 07 à 19:15, Chris H. a écrit :

> you shouldn’t have to create a route for each module in your admin  
> area
> 
> map.admin ‘admin/:action’, :controller =\> ‘admin’
> 
> should be enough.

It can’t work because ‘admin/content’ or ‘admin/category’ are  
controllers because I’m using this :

class Admin::ContentController \< Admin::BaseController

The only way I can find is to write a route for each module, eg:

map.admin\_content ‘admin/content’, : controller =\> ‘admin/content’

## It’s a bit strange to do that …

Nicolas C.

> **[Bounga’s Home](https://www.bounga.org/)**
>
> Thoughts about Ruby, Rails, Hanami, Elixir, Phoenix, Javascript and Unix.

> **[Nicolas Cavigneaux Resume](https://www.cavigneaux.net/)**
>
> Nicolas Cavigneaux Resume
