Rails routes - destroy

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!

Thanks,

Dave

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)

  1. 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

Peter Vandenabeele wrote in post #1045942:

minisection_question GET

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

Thank you! Your referral to the API for the link_to led to this:
Note that if the user has JavaScript disabled, the request will fall
back to using GET. I was really on the wrong track! I recently upgraded
to Rails 3.2 and most of my Javascript stopped working. I was going to
try to figure out why after solving this current problem but I guess I
have to move on to the Javascript issues...

Thank you for your help!!

Dave

Thank you! Your referral to the API for the link_to led to this:

Note that if the user has JavaScript disabled, the request will fall

back to using GET. I was really on the wrong track! I recently upgraded

to Rails 3.2 and most of my Javascript stopped working. I was going to

try to figure out why after solving this current problem but I guess I

have to move on to the Javascript issues…

This in case you want an alternative to the js based destroy link

http://railscasts.com/episodes/77-destroy-without-javascript