Forum: Ruby on Rails Route Collections and HTTP methods

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
5c262b1a445eb969fd2d411316f5365e?d=identicon&s=25 MaggotChild (Guest)
on 2009-01-30 19:47
(Received via mailing list)
I don't see a way to create a single URL in a collection and then have
routing dispatch to the appropriate method based on the  HTTP method.

map.resources :packages, :collection=>{ :search=>:get }

Gets me half way there, but I can see a way to say that I want the
POST to go to the do_search method.

Furthermore

map.resources :packages, :collection=>
{ :search=>:get, :do_search=>:post }

results in a ActionController::MethodNotAllowed for POSTs to /packages/
do_search.

`rake routes`  affirms that this should be accepted:

do_search_packages POST   /packages/do_search
{:action=>"do_search", :controller=>"packages"}

How can I solve either of these?
Thanks
978ed7ca309d5495078702096f9add03?d=identicon&s=25 Thomas r. Koll (tomk32)
on 2009-01-30 21:44
(Received via mailing list)
Hi,

I don't have a solution for you but in general searches are GET and
never POST. I don't know where this nonsense comes from but
it's breaking the principles behind the HTTP.

Did you try :any instead of :post ?

ciao, tom
5c262b1a445eb969fd2d411316f5365e?d=identicon&s=25 MaggotChild (Guest)
on 2009-01-30 22:16
(Received via mailing list)
> ..but in general searches are GET and
> never POST. I don't know where this nonsense comes from but
> it's breaking the principles behind the HTTP.

Well I don't disagree with this paradigm, but the point is Rails seems
to not allow one to set up a route  like the defaults provided by
map.resourses. i.e one URL, dispatched to to 2 different actions based
on HTTP method.

> Did you try :any instead of :post ?

Either one raises the nonsensical ActionController::MethodNotAllowed.
I say nonsensical because rake routes tells me do_search accepts
posts.
This topic is locked and can not be replied to.