Routing through parent


#1

Hello,

At the moment I have the following route in my routes.rb file

map.resources :categories do |categories|
categories.resources :products
end

Simple relationship…
product belongs_to a category
a category has_many products

is it possible to create a route where I could have something like:

map.product ‘/:category_name/:product_name’

I can’t seem to get both of the controllers working together to create
such route.

Thanks in advance.

McKenzie


#2

On Thu, Jan 22, 2009 at 1:39 PM, Ryan M. <
removed_email_address@domain.invalid> wrote:

product belongs_to a category

McKenzie

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

You can do that with map.connect ‘:category_name/:product_name’,
:controller
=> <controller_name>, :action => <action_name>

You’ll have to think about how good an idea it is to use only category
and
product names and not ids

Think about using to_param on your models which can then display both id
and
name
class Category < ActiveRecord::Base
def to_param
“#{id}-#{name.gsub(/[^\w\d]+/, ‘-’)}”
end
end

Then you don’t have to mess with your routes and your urls will be
/1-category/2-product and your controllers will still get the id in
params[:id]


Andrew T.
http://ramblingsonrails.com
http://www.linkedin.com/in/andrewtimberlake

“I have never let my schooling interfere with my education” - Mark Twain