# Overriding rest show route but not delete

**URL:** <https://www.ruby-forum.com/t/overriding-rest-show-route-but-not-delete/121572>\
**Category:** Rails\
**Created:** [November 28, 2007, 11:47pm UTC](https://www.ruby-forum.com/t/overriding-rest-show-route-but-not-delete/121572 "2007-11-28T23:47:43Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![linojon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/b3f665/32.png) [@linojon](https://www.ruby-forum.com/u/linojon)\
**Post date:** [November 28, 2007, 11:47pm UTC](https://www.ruby-forum.com/t/overriding-rest-show-route-but-not-delete/121572/1 "2007-11-28T23:47:43Z")

</div>

hi, lets say routes.rb has

```
 map.resources :foo

```

and I want the show action to have a diffent url, so I add (after the  
above line)

```
 map.foo '/bar/:id', :controller => 'foo', :action => 'show'

```

this works fine, including foo\_path( :id =\> “1”) =\> /bar/1  
and \<%= link\_to ‘Show’, foo %\>

But now this also seems to go to the show action, not destroy

\<%= link\_to ‘Destroy’, foo, :confirm =\> ‘Are you sure?’, :method  
=\> :delete %\>

---

<div class="post-metadata">

**Author:** ![linojon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/b3f665/32.png) [@linojon](https://www.ruby-forum.com/u/linojon)\
**Post date:** [November 29, 2007, 12:13am UTC](https://www.ruby-forum.com/t/overriding-rest-show-route-but-not-delete/121572/2 "2007-11-29T00:13:27Z")

</div>

Your named route map.foo goes explicitly to the show action. It’s  
overriding the path method created by the map.resources.

---

<div class="post-metadata">

**Author:** ![linojon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/b3f665/32.png) [@linojon](https://www.ruby-forum.com/u/linojon)\
**Post date:** [November 29, 2007, 9:52am UTC](https://www.ruby-forum.com/t/overriding-rest-show-route-but-not-delete/121572/3 "2007-11-29T09:52:09Z")

</div>

If your example is an accurate representation of your application’s  
behavior, then you’re overriding the restful route method foo\_url with  
the named map.foo, which will also generate a foo\_url method. Give  
map.foo a different name, and the methods won’t conflict any more.

---

<div class="post-metadata">

**Author:** ![linojon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/b3f665/32.png) [@linojon](https://www.ruby-forum.com/u/linojon)\
**Post date:** [November 29, 2007, 8:40am UTC](https://www.ruby-forum.com/t/overriding-rest-show-route-but-not-delete/121572/4 "2007-11-29T08:40:46Z")

</div>

ok, so how can i make it override the show action but not the delete  
one, which has a similar path with different request method?

On Nov 28, 6:11 pm, “removed\_email\_address@domain.invalid” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
