raphael_turtle
raphael_turtle

Reputation: 7314

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

Upvotes: 5

Views: 7207

Answers (1)

Gabe Kopley
Gabe Kopley

Reputation: 16667

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))'

Upvotes: 8

Related Questions