On Sun, Feb 12, 2012 at 4:14 AM, Dave Castellano <li...@ruby-forum.com>wrote:
> Can't figure out how duplicate routes are differentiated by rails ... > Read routing from inside out and API as well as a few tutorials but > still don't get it!!! For example... > > routes.rb > resources :minisections do > resources :questions > end > > rake routes: > minisection_question GET > /minisections/:minisection_id/questions/:id(.:format) > questions#show > > PUT > /minisections/:minisection_id/questions/:id(.:format) > questions#update > > DELETE > /minisections/:minisection_id/questions/:id(.:format) > questions#destroy > > In the view: > <%= link_to 'Delete', minisection_question_path(:minisection_id => > @minisection.id, > :id => question.id), > :confirm => 'Are you sure?', > :method => :delete %> > > SO the GET, PUT, and DELETE routes are the same. The view listed above > ends up requesting the first route ie "show" method even though I have > :method => :delete. ...so how to specify to to rails to delete a > question! > There are 2 aspects: 1) resourceful routing In e.g. the "Rails Routing from the Outside In" tutotial http://guides.rubyonrails.org/routing.html#resource-routing-the-rails-default have a second look at Chapter 2 on Resources. E.g. the table in section 2.2 explains that for the same path (/photos/:id) there are 3 different routes, with different HTTP verbs GET, PUT, DELETE. The trick is that there is not only the path (/photos/:id) that differentiates the route, but also the http VERB that is used. That is typically for a single member (1 photo, not the collection): GET for a non-state changing action (e.g. view the photo) PUT to update a certain resource (e.g. update the description) DELETE to destroy the resource (delete it) 2) the exact workings of the link_to method Checkout this http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to in detail. HTH, Peter -- *** Available for a new project *** Peter Vandenabeele http://twitter.com/peter_v http://rails.vandenabeele.com http://coderwall.com/peter_v -- 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.