# Overriding restful routes

**URL:** <https://www.ruby-forum.com/t/overriding-restful-routes/123850>\
**Category:** Rails\
**Created:** [December 21, 2007, 9:45am UTC](https://www.ruby-forum.com/t/overriding-restful-routes/123850 "2007-12-21T09:45:46Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![jney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/49beb7/32.png) [@jney](https://www.ruby-forum.com/u/jney)\
**Post date:** [December 21, 2007, 9:45am UTC](https://www.ruby-forum.com/t/overriding-restful-routes/123850/1 "2007-12-21T09:45:46Z")

</div>

Hi!  
i got those 2 routes:  
map.preferences ‘/preferences’, :controller =\> ‘preferences’, :action  
=\> ‘new’, :requirements =\> { :method =\> :get }  
map.resource :preferences

what i want to do is:

- if user type address /preferences it goes to new, instead of index.  
(this point works)
- if method is other than a “get” method, it should do the usual REST  
action (it doesn’t work).

someone know how i do it?

---

<div class="post-metadata">

**Author:** ![jney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/49beb7/32.png) [@jney](https://www.ruby-forum.com/u/jney)\
**Post date:** [December 21, 2007, 10:51am UTC](https://www.ruby-forum.com/t/overriding-restful-routes/123850/2 "2007-12-21T10:51:20Z")

</div>

It sounds like you are hacking the singleton resource to fit your url  
to show as /preferences. I have created a patch that might help you in  
this case.

[http://dev.rubyonrails.org/ticket/10578](http://dev.rubyonrails.org/ticket/10578)

But anyway still, with your hack the easiest thing to do would be to  
use the resources and redirect to new on the GET index.

On Dec 21, 1:45 pm, “Jean-Sébastien” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![jney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/49beb7/32.png) [@jney](https://www.ruby-forum.com/u/jney)\
**Post date:** [December 21, 2007, 2:10pm UTC](https://www.ruby-forum.com/t/overriding-restful-routes/123850/3 "2007-12-21T14:10:02Z")

</div>

your patch looks nice.

And i have others question about your patch.  
does it manage internationalization?  
i mean /productos/1 and /products/1 would be the same page or just  
spanish is available?

---

<div class="post-metadata">

**Author:** ![jney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/49beb7/32.png) [@jney](https://www.ruby-forum.com/u/jney)\
**Post date:** [December 21, 2007, 2:41pm UTC](https://www.ruby-forum.com/t/overriding-restful-routes/123850/4 "2007-12-21T14:41:47Z")

</div>

i just try your patch but doesn’t works for me… i don’t know why.  
i’ll find the problem.

On Dec 21, 2:09 pm, “Jean-Sébastien” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![jney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/49beb7/32.png) [@jney](https://www.ruby-forum.com/u/jney)\
**Post date:** [December 21, 2007, 5:00pm UTC](https://www.ruby-forum.com/t/overriding-restful-routes/123850/5 "2007-12-21T17:00:06Z")

</div>

what error did you get?

On Dec 21, 6:41 pm, “Jean-Sébastien” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![jney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/49beb7/32.png) [@jney](https://www.ruby-forum.com/u/jney)\
**Post date:** [December 21, 2007, 5:00pm UTC](https://www.ruby-forum.com/t/overriding-restful-routes/123850/6 "2007-12-21T17:00:41Z")

</div>

I am afraid, it cannot handle internationalisation

On Dec 21, 6:09 pm, “Jean-Sébastien” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![jney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/49beb7/32.png) [@jney](https://www.ruby-forum.com/u/jney)\
**Post date:** [December 22, 2007, 1:26am UTC](https://www.ruby-forum.com/t/overriding-restful-routes/123850/7 "2007-12-22T01:26:59Z")

</div>

ufff feel stupid, it works perfectly (i made a routing error)

---

<div class="post-metadata">

**Author:** ![jney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/49beb7/32.png) [@jney](https://www.ruby-forum.com/u/jney)\
**Post date:** [December 22, 2007, 11:35am UTC](https://www.ruby-forum.com/t/overriding-restful-routes/123850/8 "2007-12-22T11:35:35Z")

</div>

Good to know that.

May be you should update the ticket with your experience, so others  
might benefit. Thanks.

On Dec 22, 5:26 am, “Jean-Sébastien” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
