On Thu, Jan 22, 2009 at 1:39 PM, Ryan Mckenzie <
[email protected]> wrote:

>
> 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
> --
> 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 Timberlake
http://ramblingsonrails.com
http://www.linkedin.com/in/andrewtimberlake

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

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to