1

我对 Rails 3 资源路线感到困惑。我有以下行routes.rb

resources :dungeons, only: [ :index, :destroy, :create, :update, :show ]

当我检查使用创建的命名路由时rake routes,我得到:

dungeons GET    /dungeons(.:format)                                    dungeons#index
         POST   /dungeons(.:format)                                    dungeons#create
 dungeon GET    /dungeons/:id(.:format)                                dungeons#show
         PUT    /dungeons/:id(.:format)                                dungeons#update
         DELETE /dungeons/:id(.:format)                                dungeons#destroy

为什么使用 http get 方法的路由只有命名路由?如果我想创建一个指向销毁操作的链接,我必须使用类似的东西{ :action => 'destroy', :method => :delete, :id => dungeon.id }而不是简单的destroy_dungeon_path( dungeon ). 我的有什么问题routes.rb吗?

4

1 回答 1

4

您的路线文件没有问题。这是销毁路线:dungeon_path(id)

您必须发送 DELETE 请求才能触发它。show、update 和 destroy 得到相同的 named_route,唯一不同的是 Request 的类型(GET 表示 show,PUT 表示 update 或 DELETE 表示 destroy)

您需要了解 Rails3 中路由的所有内容:http: //guides.rubyonrails.org/routing.html

于 2012-12-17T14:45:13.660 回答