刚学rails,不知道路由的rails代码改怎么写,而config/routes.rb路由文件下有很多路由的例子,而又不知道有何意义。对各个例子分别执行bin/rake routes后可以看到如下,大概能知道其中的意义了;
大概分为:根路由、常规路由、资源路由(常规路由的合体)、嵌套的常规/资源路由、命名空间的路由;
=====================================================================
# You can have the root of your site routed with "root"
# 根路由
# root 'welcome#index'
---------------------------------------------------------------------
root GET / welcome#index
=====================================================================
# Example of regular route:
# 常规的路由
# get 'products/:id' => 'catalog#view'
---------------------------------------------------------------------
GET /products/:id(.:format) catalog#view
=====================================================================
# Example of named route that can be invoked with purchase_url(id: product.id)
# 购物类的(具体还short toggle sold怎么用还不清楚)
# get 'products/:id/purchase' => 'catalog#purchase', as: :purchase
---------------------------------------------------------------------
short_product GET /products/:id/short(.:format) products#short
toggle_product POST /products/:id/toggle(.:format) products#toggle
sold_products GET /products/sold(.:format) products#sold
products GET /products(.:format) products#index
POST /products(.:format) products#create
new_product GET /products/new(.:format) products#new
edit_product GET /products/:id/edit(.:format) products#edit
product GET /products/:id(.:format) products#show
PATCH /products/:id(.:format) products#update
PUT /products/:id(.:format) products#update
DELETE /products/:id(.:format) products#destroy
=====================================================================
# Example resource route (maps HTTP verbs to controller actions automatically):
# 资源路由
# 使用资源路径可以快速声明资源式控制器所有的常规路由
# 无需分别为 index、show、new、edit、create、update 和 destroy 动作分别声明路由
# resources :products
---------------------------------------------------------------------
products GET /products(.:format) products#index
POST /products(.:format) products#create
new_product GET /products/new(.:format) products#new
edit_product GET /products/:id/edit(.:format) products#edit
product GET /products/:id(.:format) products#show
PATCH /products/:id(.:format) products#update
PUT /products/:id(.:format) products#update
DELETE /products/:id(.:format) products#destroy
=====================================================================
# Example resource route with options:
# resources :products do
# member do
# get 'short'
# post 'toggle'
# end
#
# collection do
# get 'sold'
# end
# end
# 将常规路由嵌入资源路由
---------------------------------------------------------------------
short_product GET /products/:id/short(.:format) products#short
toggle_product POST /products/:id/toggle(.:format) products#toggle
sold_products GET /products/sold(.:format) products#sold
products GET /products(.:format) products#index
POST /products(.:format) products#create
new_product GET /products/new(.:format) products#new
edit_product GET /products/:id/edit(.:format) products#edit
product GET /products/:id(.:format) products#show
PATCH /products/:id(.:format) products#update
PUT /products/:id(.:format) products#update
DELETE /products/:id(.:format) products#destroy
=====================================================================
# Example resource route with sub-resources:
# resources :products do
# resources :comments, :sales
# resource :seller
# end
# 将资源路由嵌入资源路由(一般用于两个或多个关联的数据表)
---------------------------------------------------------------------
product_comments GET /products/:product_id/comments(.:format) comments#index
POST /products/:product_id/comments(.:format) comments#create
new_product_comment GET /products/:product_id/comments/new(.:format) comments#new
edit_product_comment GET /products/:product_id/comments/:id/edit(.:format) comments#edit
product_comment GET /products/:product_id/comments/:id(.:format) comments#show
PATCH /products/:product_id/comments/:id(.:format) comments#update
PUT /products/:product_id/comments/:id(.:format) comments#update
DELETE /products/:product_id/comments/:id(.:format) comments#destroy
product_sales GET /products/:product_id/sales(.:format) sales#index
POST /products/:product_id/sales(.:format) sales#create
new_product_sale GET /products/:product_id/sales/new(.:format) sales#new
edit_product_sale GET /products/:product_id/sales/:id/edit(.:format) sales#edit
product_sale GET /products/:product_id/sales/:id(.:format) sales#show
PATCH /products/:product_id/sales/:id(.:format) sales#update
PUT /products/:product_id/sales/:id(.:format) sales#update
DELETE /products/:product_id/sales/:id(.:format) sales#destroy
product_seller POST /products/:product_id/seller(.:format) sellers#create
new_product_seller GET /products/:product_id/seller/new(.:format) sellers#new
edit_product_seller GET /products/:product_id/seller/edit(.:format) sellers#edit
GET /products/:product_id/seller(.:format) sellers#show
PATCH /products/:product_id/seller(.:format) sellers#update
PUT /products/:product_id/seller(.:format) sellers#update
DELETE /products/:product_id/seller(.:format) sellers#destroy
products GET /products(.:format) products#index
POST /products(.:format) products#create
new_product GET /products/new(.:format) products#new
edit_product GET /products/:id/edit(.:format) products#edit
product GET /products/:id(.:format) products#show
PATCH /products/:id(.:format) products#update
PUT /products/:id(.:format) products#update
DELETE /products/:id(.:format) products#destroy
======================================================================
# Example resource route with more complex sub-resources:
# resources :products do
# resources :comments
# resources :sales do
# get 'recent', on: :collection
# end
# end
# 资源路由、嵌套资源路由、再嵌套常规路由
----------------------------------------------------------------------
product_comments GET /products/:product_id/comments(.:format) comments#index
POST /products/:product_id/comments(.:format) comments#create
new_product_comment GET /products/:product_id/comments/new(.:format) comments#new
edit_product_comment GET /products/:product_id/comments/:id/edit(.:format) comments#edit
product_comment GET /products/:product_id/comments/:id(.:format) comments#show
PATCH /products/:product_id/comments/:id(.:format) comments#update
PUT /products/:product_id/comments/:id(.:format) comments#update
DELETE /products/:product_id/comments/:id(.:format) comments#destroy
recent_product_sales GET /products/:product_id/sales/recent(.:format) sales#recent
product_sales GET /products/:product_id/sales(.:format) sales#index
POST /products/:product_id/sales(.:format) sales#create
new_product_sale GET /products/:product_id/sales/new(.:format) sales#new
edit_product_sale GET /products/:product_id/sales/:id/edit(.:format) sales#edit
product_sale GET /products/:product_id/sales/:id(.:format) sales#show
PATCH /products/:product_id/sales/:id(.:format) sales#update
PUT /products/:product_id/sales/:id(.:format) sales#update
DELETE /products/:product_id/sales/:id(.:format) sales#destroy
products GET /products(.:format) products#index
POST /products(.:format) products#create
new_product GET /products/new(.:format) products#new
edit_product GET /products/:id/edit(.:format) products#edit
product GET /products/:id(.:format) products#show
PATCH /products/:id(.:format) products#update
PUT /products/:id(.:format) products#update
DELETE /products/:id(.:format) products#destroy
======================================================================
# Example resource route with concerns:
# concern :toggleable do
# post 'toggle'
# end
# resources :posts, concerns: :toggleable
# resources :photos, concerns: :toggleable
----------------------------------------------------------------------
post_toggle POST /posts/:post_id/toggle(.:format) posts#toggle
posts GET /posts(.:format) posts#index
POST /posts(.:format) posts#create
new_post GET /posts/new(.:format) posts#new
edit_post GET /posts/:id/edit(.:format) posts#edit
post GET /posts/:id(.:format) posts#show
PATCH /posts/:id(.:format) posts#update
PUT /posts/:id(.:format) posts#update
DELETE /posts/:id(.:format) posts#destroy
photo_toggle POST /photos/:photo_id/toggle(.:format) photos#toggle
photos GET /photos(.:format) photos#index
POST /photos(.:format) photos#create
new_photo GET /photos/new(.:format) photos#new
edit_photo GET /photos/:id/edit(.:format) photos#edit
photo GET /photos/:id(.:format) photos#show
PATCH /photos/:id(.:format) photos#update
PUT /photos/:id(.:format) photos#update
DELETE /photos/:id(.:format) photos#destroy
======================================================================
# Example resource route within a namespace:
# namespace :admin do
# # Directs /admin/products/* to Admin::ProductsController
# # (app/controllers/admin/products_controller.rb)
# resources :products
# end
# 命名空间的路由(后台管理路由实例)
----------------------------------------------------------------------
admin_products GET /admin/products(.:format) admin/products#index
POST /admin/products(.:format) admin/products#create
new_admin_product GET /admin/products/new(.:format) admin/products#new
edit_admin_product GET /admin/products/:id/edit(.:format) admin/products#edit
admin_product GET /admin/products/:id(.:format) admin/products#show
PATCH /admin/products/:id(.:format) admin/products#update
PUT /admin/products/:id(.:format) admin/products#update
DELETE /admin/products/:id(.:format) admin/products#destroy
======================================================================