【发布时间】:2011-03-09 23:12:49
【问题描述】:
我已经编写了特定 Rails 应用程序的管理区域,现在我准备将其设置为网站中的自己的部分。
因此,它将是 /admin
但是,我不想在路由本身中将它作为 /admin 我希望有一些不太常见的东西,所以我在它之前和之后添加了几个连字符。
所以路由是/-admin-/,命名空间是Admin。
使用 :path_prefix => "/-admin-" 设置后,我有以下代码块:
map.namespace "/-admin-/", :name_prefix => "", :path_prefix => "/-admin-" do |admin|
这适用于除浅层路由之外的所有路由,相反,在 rake 路由输出中,输出为:
new_page GET /-admin-/areas/:area_id/pages/new(.:format) {:action=>"new", :controller=>"admin/pages"}
edit_admin_page GET /admin/pages/:id/edit(.:format) {:action=>"edit", :controller=>"admin/pages"}
admin_page GET /admin/pages/:id(.:format) {:action=>"show", :controller=>"admin/pages"}
PUT /admin/pages/:id(.:format) {:action=>"update", :controller=>"admin/pages"}
DELETE /admin/pages/:id(.:format) {:action=>"destroy", :controller=>"admin/pages"}
areas GET /-admin-/areas(.:format) {:action=>"index", :controller=>"admin/areas"}
POST /-admin-/areas(.:format) {:action=>"create", :controller=>"admin/areas"}
new_area GET /-admin-/areas/new(.:format) {:action=>"new", :controller=>"admin/areas"}
请注意浅路由路由的前缀是 /admin/ 而不是 /-admin-/(它们的父路由也是如此)。
关于如何解决这个问题的任何想法?这是rails中的错误还是我需要解决它?我尝试将 :path_prefix 添加到每个嵌套路由,但它什么也没做?
有什么想法吗?
【问题讨论】:
标签: ruby-on-rails ruby routing namespaces routes