Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

rails route to specific id

I have a pages controller with two records in the db; 'pages' and 'contact'. The id for each page record is the title. How do I write a specific route for each page?

I currently have a catch-all route which works...

match '/:id' => 'pages#show'

but I want to create a single route for each page

like image 506
raphael_turtle Avatar asked Sep 01 '11 18:09

raphael_turtle


1 Answers

I probably don't understand your question because I have no idea why you would want to do that ;)

Anyhow, say you have a page what the title/id "about". This is what your route could look like:

match '/about' => 'pages#show', :defaults => { :id => 'about' }

cf. http://guides.rubyonrails.org/routing.html#defining-defaults

Note: I wouldn't call the route you're using already a "catchall"; it's a pretty normal Rails route. This is what I would call a catchall:

match ':controller(/:action(/:id))'
like image 173
Gabe Kopley Avatar answered Sep 21 '22 17:09

Gabe Kopley