If you want to both match "/cars/123" and also match /foo/bar" where "foo" isn't a product type... then you have a big problem just waiting to happen, imho.
- Korny On Mon, Nov 29, 2010 at 1:57 PM, Pat Allan <[email protected]> wrote: > I think the issue would more be the routing with the rest of the app - > '/:type/:id' would match a good number of paths you wouldn't actually want > it to. > > I think Andy's got it spot on before - you do indeed use that route, but it > becomes your catch-all, at the end of your routes file. > > There's still issues with being able to generate the paths neatly, but a > helper method or two should take care of that. The following may even work: > > def link_to(*args, &block) > if args[1] && args[1].is_a?(Product) > # build your product path here > else > super > end > end > > Could definitely be cleaner, but that's what I'd start with. > > -- > Pat > > On 29/11/2010, at 1:51 PM, Ben Hoskings wrote: > > > How about just: > > > > match '/:type/:id' => 'products#show' > > > > And then in ProductsController#show, use params[:id] and params[:type] ? > > > > Ben > > > > On 29 November 2010 09:44, Mark Ratjens <[email protected]> wrote: > > The requirement is to have urls of the form > > > > /cars/23 > > > > not > > > > /products/cars-23 > > > > This will, of course, be my fall-back position if I can't get exactly > what is wanted. > > > > Also, I'm already using friendly_id ... my id's aren't actually numeric, > but it doesn't change the problem. I've read though the friendly_id doco ... > it doesn't seem to help with adapting the url beyond id's and nested id's. I > have read at least one post where Norman Clark has answered saying that > friendly_id is not aimed at solving routing issues. > > > > > > On Mon, Nov 29, 2010 at 9:35 AM, Andy Shen <[email protected]> wrote: > > You could consider mapping the following route to products controller > > > > /products/:type/:id > > > > or have a look into friendly_id, which is along the same concept of > > to_params, maybe use id like car-23, truck-37, boat-126 > > > > On 28 November 2010 23:52, Mark Ratjens <[email protected]> wrote: > > > Suppose I have an ActiveRecord called Product. I can have different > kinds of > > > products, say "cars", "trucks" and "boats." Because of the nature of > the > > > app, there is no need to subclass product (i.e, the data and behaviour > is > > > the same) ... > > > > > > ... but for SEO reasons I want to be able to generate links in the app > that > > > include the kind of product, not just "product", for example: > > > > > > /cars/23 > > > /trucks/37 > > > /boats/126 > > > > > > not: > > > > > > products/23 etc > > > > > > The thing I am tousling with is generating the appropriate link in the > app. > > > Is there some way I can adapt: > > > > > > link_to @product.name, @product > > > > > > to automagically generate a link with the right product kind ... or do > I > > > need to do it long-hand, i.e: > > > > > > link_to @product.name, :controller => @product.kind, :action => :show, > :id > > > => :product > > > > > > ? > > > > > > Thanks in advance > > > > > > Mark > > > > > > > > > -- > > > You received this message because you are subscribed to the Google > Groups > > > "Ruby or Rails Oceania" group. > > > To post to this group, send email to [email protected]. > > > To unsubscribe from this group, send email to > > > [email protected]<rails-oceania%[email protected]> > . > > > For more options, visit this group at > > > http://groups.google.com/group/rails-oceania?hl=en. > > > > > > > -- > > You received this message because you are subscribed to the Google Groups > "Ruby or Rails Oceania" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > [email protected]<rails-oceania%[email protected]> > . > > For more options, visit this group at > http://groups.google.com/group/rails-oceania?hl=en. > > > > > > > > -- > > You received this message because you are subscribed to the Google Groups > "Ruby or Rails Oceania" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > [email protected]<rails-oceania%[email protected]> > . > > For more options, visit this group at > http://groups.google.com/group/rails-oceania?hl=en. > > > > > > -- > > You received this message because you are subscribed to the Google Groups > "Ruby or Rails Oceania" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > [email protected]<rails-oceania%[email protected]> > . > > For more options, visit this group at > http://groups.google.com/group/rails-oceania?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Ruby or Rails Oceania" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<rails-oceania%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/rails-oceania?hl=en. > > -- Kornelis Sietsma korny at my surname dot com http://korny.info "Every jumbled pile of person has a thinking part that wonders what the part that isn't thinking isn't thinking of" -- You received this message because you are subscribed to the Google Groups "Ruby or Rails Oceania" 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/rails-oceania?hl=en.
