Thank you for good advice. I was mostly concerned about case 1, listing projects for a given company. That allows sharing of the url (which was one of the practical use-cases I was trying to realise). I wasn't aware that auto_actions_for also supported :index. Excellent :)
Case 2 is really not important to me. Thanks, Ronny On Jul 8, 7:22 pm, Matt Jones <[email protected]> wrote: > On Thu, Jul 8, 2010 at 8:50 AM, Spiralis <[email protected]> wrote: > > Hi all, > > > I am working on a project where I have a customer and a project model/ > > controller setup hobo-style. > > > The relations are so that a company has many projects, and a project > > belongs to a company. > > > This means that I get the routes /companies and /projects 'for free'. > > > However, I want to access projects via the url like this: > > > * List of projects for a given company: > > /companies/1-ACME/projects > > * Project details for a given company: > > /companies/1-ACME/projects/1-Mickey Mouse - SteamBoat Willie 2 > > > Hobo already have auto_actions_for, but it seems to be limited to :new > > and :create. > > auto_actions_for also supports :index, which will handle the first case above. > > For the second, the company ID isn't *technically* required to > complete the action - the project ID is globally unique (unless you've > done some sort of Really Bad Thing to the DB...). It's probably better > from an implementation standpoint to just link directly: > > /projects/1-etc > > The SEO fanatics may disagree, but it works... > > If you actually want URLs like the above, just add them to the routes > file *below* the Hobo add_routes call (else you'll get weird "can't > find Product with ID 'new' errors): > > map.product_for_company '/companies/:company_id/products/:id', > :controller => 'products', 'action' => 'show' > > But you'll have a heck of a time getting even vanilla Rails helpers to > use it consistently - for instance, this won't work right: > > <%= link_to @product.name, @product %> > > That'll give you the standard REST-style /products/:id path - I think > you'd need something like: > > <%= link_to @product.name, [[email protected], @product] %> > > (assuming that link_to / url_for supports the same magic as form_for) > > The additional hassles involved in prodding the <a> tag to do this are > left to the reader. :) > > --Matt Jones -- You received this message because you are subscribed to the Google Groups "Hobo Users" 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/hobousers?hl=en.
