多个路由使用相同的控制器?
有没有办法编写以下路由,所以你不必每次都指定相同的控制器?…
get 'jobs' => 'pages#jobs' get 'contact' => 'pages#contact' get 'terms' => 'pages#terms' get 'privacy' => 'pages#privacy'
以下是几种选择:
在这三个中,第一个,即Using scope as "/"
将创建routes defined in the question
的routes defined in the question
创建的routes defined in the question
完全相同的routes defined in the question
。
1.使用范围为“/”
scope "/", controller: :pages do get 'jobs' get 'contact' get 'terms' get 'privacy' end
创建如下路线:
jobs GET /jobs(.:format) pages#jobs contact GET /contact(.:format) pages#contact terms GET /terms(.:format) pages#terms privacy GET /privacy(.:format) pages#privacy
2.使用Scope作为“页面”
scope :pages, controller: :pages do get 'jobs' get 'contact' get 'terms' get 'privacy' end
创建如下路线:
jobs GET /pages/jobs(.:format) pages#jobs contact GET /pages/contact(.:format) pages#contact terms GET /pages/terms(.:format) pages#terms privacy GET /pages/privacy(.:format) pages#privacy
3.嵌套路线
resources :pages do member do get 'jobs' get 'contact' get 'terms' get 'privacy' end end
创建如下路线:
jobs_page GET /pages/:id/jobs(.:format) pages#jobs contact_page GET /pages/:id/contact(.:format) pages#contact terms_page GET /pages/:id/terms(.:format) pages#terms privacy_page GET /pages/:id/privacy(.:format) pages#privacy