Rails 路由指南

Rails 路由参考:resources、嵌套路由、member/collection 动作、concerns、约束、命名空间和路由辅助方法。

1. Resources 与 REST 路由

Rails.application.routes.draw do
  resources :articles

  resources :articles do
    member do
      post :publish
      get  :preview
    end
    collection do
      get :featured
      get :search
    end
  end
end

2. 嵌套路由

resources :articles do
  resources :comments, only: [:index, :create, :destroy]
end
# 生成: /articles/:article_id/comments

# 浅层嵌套 — 避免过深的 URL
resources :articles do
  resources :comments, shallow: true
end

3. 命名空间

namespace :admin do
  resources :users
  resources :articles
end
# → /admin/users, Admin::UsersController

scope '/api/v1' do
  resources :articles
end
# → /api/v1/articles, ArticlesController

4. REST 路由生成表

HTTP 方法路径Action
GET/articlesindex
POST/articlescreate
GET/articles/:idshow
PATCH/PUT/articles/:idupdate
DELETE/articles/:iddestroy