# Route for nested delete

**URL:** <https://www.ruby-forum.com/t/route-for-nested-delete/122753>\
**Category:** Rails\
**Created:** [December 11, 2007, 8:11pm UTC](https://www.ruby-forum.com/t/route-for-nested-delete/122753 "2007-12-11T20:11:05Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![rykkers](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e5b9ba/32.png) [@rykkers](https://www.ruby-forum.com/u/rykkers)\
**Post date:** [December 11, 2007, 8:11pm UTC](https://www.ruby-forum.com/t/route-for-nested-delete/122753/1 "2007-12-11T20:11:05Z")

</div>

I seem to be stuck on restful deletion.

I’ve got a person model and a wish model, a person has many wishes.

Here’s my routes.rb (simplified)

map.resources :people do |people|  
people.resources :wishes  
end

Now I want to be able to delete a wish, and I try a link to  
person\_wish\_url(@wish.person, @wish, :method =\> :delete)

But the generated path doesn’t seem to be recognized.

shadowfax:~/ssanta rick$ script/console  
Loading development environment (Rails 2.0.0)

> > include ActionController::UrlWriter  
> > =\> Object  
> > person\_wish\_path(1, 2)  
> > =\> “/people/1/wishes/2”  
> > person\_wish\_path(1, 2, :method =\> :delete)  
> > =\> “/people/1/wishes/2?method=delete”  
> > irb ActionController::Routing::Routes  
> > recognize\_path(“/people/1/wishes/2”)  
> > ActionController::MethodNotAllowed: Only get, put, and delete requests  
> > are allowed.  
> > from  
> > /Users/rick/ssanta/vendor/rails/actionpack/lib/action\_controller/routing.rb:1436:in  
> > `recognize_path' from (irb#1):1 recognize_path("/people/1/wishes/2?method=delete") ActionController::RoutingError: No route matches "/people/1/wishes/2?method=delete" with {} from /Users/rick/ssanta/vendor/rails/actionpack/lib/action_controller/routing.rb:1438:in `recognize\_path’  
> > from (irb#1):2  
> > recognize\_path(“/people/1/wish/2?method=delete”)  
> > ActionController::RoutingError: No route matches  
> > “/people/1/wish/2?method=delete” with {}  
> > from  
> > /Users/rick/ssanta/vendor/rails/actionpack/lib/action\_controller/routing.rb:1438:in  
> > `recognize\_path’  
> > from (irb#1):3

## Where am I going wrong?

Rick DeNatale

My blog on Ruby  
[http://talklikeaduck.denhaven2.com/](http://talklikeaduck.denhaven2.com/)

---

<div class="post-metadata">

**Author:** ![rykkers](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e5b9ba/32.png) [@rykkers](https://www.ruby-forum.com/u/rykkers)\
**Post date:** [December 11, 2007, 9:09pm UTC](https://www.ruby-forum.com/t/route-for-nested-delete/122753/2 "2007-12-11T21:09:57Z")

</div>

I figured it out, the method doesn’t go inside the x\_path/x\_url call,  
but as an option to the link\_to

## D’oh!

Rick DeNatale

My blog on Ruby  
[http://talklikeaduck.denhaven2.com/](http://talklikeaduck.denhaven2.com/)

---

<div class="post-metadata">

**Author:** ![rykkers](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e5b9ba/32.png) [@rykkers](https://www.ruby-forum.com/u/rykkers)\
**Post date:** [December 11, 2007, 11:22pm UTC](https://www.ruby-forum.com/t/route-for-nested-delete/122753/3 "2007-12-11T23:22:29Z")

</div>

On 12/10/07, Rick DeNatale [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I seem to be stuck on restful deletion.

By the way:

shadowfax:~/ssanta rick$ rake routes | grep wish  
person\_wishes GET /people/:person\_id/wishes  
{:controller=\>“wishes”, :action=\>“index”}  
formatted\_person\_wishes GET /people/:person\_id/wishes.:format  
{:controller=\>“wishes”, :action=\>“index”}  
POST /people/:person\_id/wishes  
{:controller=\>“wishes”, :action=\>“create”}  
POST /people/:person\_id/wishes.:format  
{:controller=\>“wishes”, :action=\>“create”}  
new\_person\_wish GET /people/:person\_id/wishes/new  
{:controller=\>“wishes”, :action=\>“new”}  
formatted\_new\_person\_wish GET  
/people/:person\_id/wishes/new.:format {:controller=\>“wishes”,  
:action=\>“new”}  
edit\_person\_wish GET  
/people/:person\_id/wishes/:id/edit {:controller=\>“wishes”,  
:action=\>“edit”}  
formatted\_edit\_person\_wish GET  
/people/:person\_id/wishes/:id/edit.:format {:controller=\>“wishes”,  
:action=\>“edit”}  
person\_wish GET /people/:person\_id/wishes/:id  
{:controller=\>“wishes”, :action=\>“show”}  
formatted\_person\_wish GET  
/people/:person\_id/wishes/:id.:format {:controller=\>“wishes”,  
:action=\>“show”}  
PUT /people/:person\_id/wishes/:id  
{:controller=\>“wishes”, :action=\>“update”}  
PUT  
/people/:person\_id/wishes/:id.:format {:controller=\>“wishes”,  
:action=\>“update”}  
DELETE /people/:person\_id/wishes/:id  
{:controller=\>“wishes”, :action=\>“destroy”}  
DELETE  
/people/:person\_id/wishes/:id.:format {:controller=\>“wishes”,  
:action=\>“destroy”}

## And this is on Rails 2.0

Rick DeNatale

My blog on Ruby  
[http://talklikeaduck.denhaven2.com/](http://talklikeaduck.denhaven2.com/)
