我有一些嵌套的资源(名称空间,页面和注释),url看起来像这样: http://example.com/namespaces/objects/pages/super-page
- 它太长了。从url中删除资源
从路由中删除资源名称的最佳方法是什么?我想得到类似的东西: http://example.com/objects/super-page/
更新:命名空间控制器中只有show
操作。
我有一些嵌套的资源(名称空间,页面和注释),url看起来像这样: http://example.com/namespaces/objects/pages/super-page
- 它太长了。从url中删除资源
从路由中删除资源名称的最佳方法是什么?我想得到类似的东西: http://example.com/objects/super-page/
更新:命名空间控制器中只有show
操作。
您可以设置path属性的reources
resources :pages, :path => '' do
我发现这篇文章定制非常有帮助我的网址的http://jasoncodes.com/posts/rails-3-nested-resource-slugs
还为摆脱的id和定制一个伟大的宝石蛞蝓,friendly_id的,http://railscasts.com/episodes/314-pretty-urls-with-friendlyid
您可以在路由 如使用shallow
参数:
resources :namespaces, :shallow => true do
resources :objects do
resources :pages
end
end
,然后你可以使用路由像
page_path(1) #=> '/pages/1'
object_page_path(1,1) #=> '/object/1/pages/1'
namespace_page_path(1, 1) #=> '/namespace/1/pages/1'