On Sep 9, 2009, at 7:06 PM, MaggotChild wrote:
>
> Can't find the answer to this. My old message received no responses
> (subject was messed up).
>
> Is it possible to create routes that have the same URL yet map to a
> different action based on the HTTP method (or pseudo method) like a
> Rails' resource?
>
> For example:
>
> map.resources :foo, :collection => { :purge => :get, :purge_them
> => :post }
>
> I'd like to use /foo/purge for both actions, and have the appropriate
> controller method called based on the HTTP request's method -like /foo
> does for the create and index methods, amongst others.
map.connect('/foo/purge', :controller => 'foo', :action =>
'purge' , :conditions => { :method => :get })
map.connect('/foo/purge', :controller => 'foo', :action =>
'purge_them', :conditions => { :method => :post})
map.resources :foo
I put parentheses in so the wrapping doesn't kill the syntax.
Since there is an implied precedence based on appearance, if the
map.resources(:foo) comes first, GET /foo/purge, looks like you want
to show the Foo with id='purge'. (I'm not sure, but a POST /foo/purge
might do the FooController#purge_them in either case).
I hope that helps.
-Rob
Rob Biedenharn http://agileconsultingllc.com
[email protected]
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---