这些铁路路线做什么?

时间:2010-10-06 19:59:07

标签: ruby-on-rails routing

有人可以用示例网址解释以下内容吗?谢谢捆绑! (宝石束!)

resources :products do
  resource :category

  member do
    post :short
  end

  collection do
    get :long
  end
end

Resources会映射ProductController中的所有路由吗?如何嵌入类别?

match 'products/:id', :to => 'catalog#view'

这是map / products / 234到categolController,查看动作吗?

2 个答案:

答案 0 :(得分:5)

尝试从Rails项目目录运行rake routes。这将会列出完整的路线列表以及它们映射的位置。

答案 1 :(得分:1)

正如克里斯提到的那样,rake路线会告诉你,但是快速解释一下:

任何基于产品的路线都会转到产品控制器:

GET /products       # products controller index action
GET /products/:id   # products controller show action
POST /products      # products controller create action
PUT /products/:id  # products controller update action
... etc etc

您还将获得一些额外的路线,但是这些路线会转到类别控制器,此类别将是某个产品的属性......所以:

GET /products/:product_id/category   # categories controller index action
POST /products/:product_id/category  # categories controller create action
... etc etc

如果您执行以下操作:

match 'products/:id', :to => 'catalog#view'

您将覆盖路线的默认show操作。这是你想要的吗?可能不是。再次,运行rake routes以了解正在发生的事情。