Rails routes - destroy

23 views
Skip to first unread message

Dave Castellano

unread,
Feb 11, 2012, 10:14:00 PM2/11/12
to rubyonra...@googlegroups.com
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

--
Posted via http://www.ruby-forum.com/.

Peter Vandenabeele

unread,
Feb 12, 2012, 2:46:19 AM2/12/12
to rubyonra...@googlegroups.com
There are 2 aspects:

1) resourceful routing

In e.g. the "Rails Routing from the Outside In" tutotial


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


in detail.

HTH,

Peter


--
*** Available for a new project ***

Peter Vandenabeele
http://twitter.com/peter_vhttp://coderwall.com/peter_v

Dave Castellano

unread,
Feb 12, 2012, 9:50:51 AM2/12/12
to rubyonra...@googlegroups.com
Peter Vandenabeele wrote in post #1045942:

> On Sun, Feb 12, 2012 at 4:14 AM, Dave Castellano
> <li...@ruby-forum.com>wrote:
>
>> minisection_question GET

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!!

radhames brito

unread,
Feb 12, 2012, 10:21:26 AM2/12/12
to rubyonra...@googlegroups.com

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 
Reply all
Reply to author
Forward
0 new messages