有没有办法编写以下路由,所以你不必每次都指定相同的控制器?…
get 'jobs' => 'pages#jobs' get 'contact' => 'pages#contact' get 'terms' => 'pages#terms' get 'privacy' => 'pages#privacy'
解决方法
以下是几种选择:
在这三个中,第一个,即使用范围为“/”将创建与问题中定义的路径创建的路线完全相同的路径.
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