Rails - 从路由指定http动词PUT或DELETE

时间:2011-12-09 08:29:50

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

对于特定路径,是否可以从route.rb中指定put或delete http谓词?

像:

get 'photos/show'

我尝试用下面的匹配来做到这一点:

match 'photos/show' => 'photos#show', :via => :delete

在rake路线中,似乎没错,但它没有删除http请求。我也试过了:

match 'photos/show' => 'photos#show', :via => :random

在rake路线中,它显示“随机”

您似乎可以指定guides中显示的get或post,但我不知道是否可以指定put或delete。有可能吗?

2 个答案:

答案 0 :(得分:8)

put 'photos/:id(.:format)', :to => 'photos#update'
delete 'photos/:id(.:format)', :to => 'photos#destroy'

resources :photos

并使用

点击您的app目录
rake routes

来吧,你甚至都没有尝试过!

答案 1 :(得分:3)

没有什么可以阻止你直接使用put / post / delete'代替匹配。

例如,这对我有用:

get 'user/edit' => 'users#edit', :as => :edit_current_user
put 'signup' => 'users#update'

当您想要像这样(但不是常见的情况)路由时,via选项非常有用:

match 'user/show' => 'users#show', :via => [:get, :post]