It is NOT suggested that the defaults be removed like Brandond says.

It IS suggested that you use map.resources :foos. Which will give you
what you want.

if you, however, want to check explicitely for the method of and
action you can do things like:

def some_action
    render(:text => "you shouldnt be trying this") and return unless
reques.post?
    ....
    ....
end

On Mar 15, 9:34 pm, Bob Martens <[email protected]> wrote:
> If you are going to go with a Restful design, why not just you
> map.resources?
>
> On Mar 15, 11:25 am, Rails Dude <[email protected]>
> wrote:
>
> > Say I have a destroy action configured as the following
>
> > map.foo '/foos/:id', :controller => 'foos', :action => 'show',
> > :conditions => { :method => :get }
> > map.foo '/foos/:id', :controller => 'foos', :action => 'destroy',
> > :conditions => { :method => :delete }
>
> > Get on foos/:id goes to show and delete on foos/:id goes to destroy.
> > Nice and restful so all good so far.
>
> > But now say if i have the following default route in my routes.rb
>
> > map.connect ':controller/:action/:id'
>
> > Now someone can explicitly type in the urlhttp://.../foos/destroy/123
> > and it will go to my destroy action in controller foos although this
> > action should only be accessed by a POST/DELETE not a GET.
>
> > Is there anyway to prevent a get on that action other than checking
> > within the controller itself?
>
> > def destroy
> >   return home_url unless method.delete?
> >   ...
> > end
>
> > Thanks!
> > --
> > Posted viahttp://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to