轨道4中的别名路由

时间:2014-01-18 21:38:24

标签: ruby-on-rails

如果我有以下路线

resources :pages do
    resources :sections
end

我得到的路线如下:

/pages  = #index
/pages/:id = #show
/pages/:id/edit = #edit
...etc

如何进行制作,以便页面控制器的#show操作的网址看起来像' /:id',没有' / pages /'字首?我应该从资源中排除#show:page&分别为它创建一个get route +别名?或者有没有办法从资源内部执行此操作:页面块?谢谢你提前。

修改

将其更改为:

resources :pages, except: [:show] do
  resources :sections
end

get '/:id', to: 'pages#show'

&安培;重新路由不存在:ids'现在到404,请告诉我是否有更好的解决方案。感谢。

1 个答案:

答案 0 :(得分:2)

get '/:id', to: 'pages#show', as: 'page'

确保它位于routes.rb文件的底部,否则会劫持对其他路径的请求。

这也为您提供了page_urlpage_path辅助方法。但要使用它们,您必须从之前的路线中排除show动作。

resources :pages, except: [:show]