##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')