thanks Rob,

I also think this is the most simple approach but was really keen to
get a 2nd opinion.


Gavin


On Jul 10, 7:59 pm, Rob Biedenharn <r...@agileconsultingllc.com>
wrote:
> On Jul 10, 2009, at 12:55 PM, Gavin wrote:
>
>
>
> > Hi all
>
> > I'm working on an app at the moment and I'm trying to think of the
> > most RESTful way of implementing one of the key parts of the site.
>
> > Some advice on the best approach would really help.
>
> > To give you an example, I have one model but it's split into three
> > different categories: lost, found, broken.
>
> > Users can browse them by category but never all together.
>
> > My initial reaction is simply to have one index and determine the
> > category by parameter:
>
> >www.mypage.com/items?category=lost
>
> > This seems like the DRYest option.
>
> > This would mean one of the categories should be the 'default' though,
> > if no parameters were specified or if they were invalid.
>
> > But each category is just as relevant as the others so this option
> > isn't great.
>
> > After thinking about it, these are separate indexes so my next
> > reaction was to have four controllers:
>
> > items ( new, create, edit, update and destroy)
> > found_items ( index )
> > lost_items ( index )
> > broken_items ( index )
>
> > This would give really clear routes and urls but it means creating
> > four separate controllers - seems like overkill no?
>
> > The third option I've considered is to name three collections in my
> > routes and add three actions to my items controller:
>
> > map.resources :items, :collection => { :lost => :get, :found
> > => :get, :broken => :get }
>
> > def lost
> > �...@items = Item.lost
> > end
>
> > ...and so on.
>
> > Again, quite clear routes and descriptive urls but I'm under the
> > impression that this is a less RESTful approach.
>
> > Any thoughts?
>
> > Thanks
>
> > Gavin
>
> I'd say go with the third one and define the actions on your resource.  
> Then you can define your index action to offer a choice of the  
> available categories (perhaps with a handy record count).
>
> -Rob
>
> Rob Biedenharn          http://agileconsultingllc.com
> r...@agileconsultingllc.com
--~--~---------~--~----~------------~-------~--~----~
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 rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to