当前位置: 首页 > 工具软件 > Rails > 使用案例 >

rails 路由

吕飞翼
2023-12-01

##rails 路由


root ‘posts#index’ //默认index, 将根路由改为用户索引页

限制生成的路由

resources :posts , except: :destroy  //不适用destroy路由
resources :posts , only: [:show]  //仅仅使用show路由

添加其他路由

get 'posts/home'
get 'posts/about'

//具名路由(同时具有about_path和about_url)
get '/home', to: 'posts#home'
get '/about', to: 'posts#about'
//自定义路由
get '/signup', to: "users#new", as: 'signup'

集合路由(无需id)動作是屬於一組資源的 URI

resources :posts do
 collection do
    get 'recent'
  end
end

要添加额外的新建动作,可以使用 :on 选项:
resources :posts do
  get 'recent', on: :collection
end

成员路由 (動作是屬於單個資源的 URI)

resources :posts do
  member do
    get 'recent'
  end
end

如果成员路由不多,可以不使用代码块形式,直接在路由上使用 :on 选项:
resources :posts do
  get 'recent', on: :member
end

通用路由

concern :commentable do
  resources :comments
end

控制器命名空间和路由

最常见的是把管理相关的控制器放在 Admin:: 命名空间内。你需要把这些控制器存在 app/controllers/admin 文件夹(需要移动文件)中,然后在路由中做如下声明:
namespace :admin do
  resources :articles, :comments
end

嵌套路由

resources :magazines do
  resources :ads
end

重定向

在路由中可以使用 redirect 帮助方法把一个路径重定向到另一个路径:
get '/stories', to: redirect('/articles')
 类似资料: