是否可以在rails中创建递归路由?
我有一个应用程序,允许管理员创建页面。页面模型是一个嵌套集,因此每个页面都有一个父ID,因此页面是以树的形式构造的。页面模型还使用友好的id插件为每个页面提供slug。
当用户浏览网站时,我希望他们能看到URL中的嵌套结构——这对于搜索引擎以及任何想通过切断URL来浏览网站的用户来说都是更好的选择。
我想要的东西大致如下:
http://example.com/page/page/page/page…等
现在很明显我可以创建一个有10个巢穴的嵌套地图,并且希望没有一个站点超过这个限制,但是我很好奇是否有其他方法…
最佳答案
您可以将初始路由(/page)映射到控制器,为所有后续参数设置“globbing”。
map.connect '/:page/*pages', :controller => 'pages', :action => 'show'
params[:pages]现在将包含一个页面参数数组(匹配您在url中指定的任意多个尾部参数)。