我有一个Folder
模型acts_as_tree
。
路由是否有可能代表文件夹结构?
文件夹:
1: Folder A
2: Folder B
3: Folder C
4: Folder D
5: Folder E
路线:
/folders/1
/folders/1/2
/folders/1/3/4
/folders/1/2/new
/folders/...
这可能吗?
我有一个Folder
模型acts_as_tree
。
路由是否有可能代表文件夹结构?
文件夹:
1: Folder A
2: Folder B
3: Folder C
4: Folder D
5: Folder E
路线:
/folders/1
/folders/1/2
/folders/1/3/4
/folders/1/2/new
/folders/...
这可能吗?
据我所知,没有简单的方法可以做到这一点。
我认为最好的方法是使用一组命名路线。
我没有对此进行测试,因此无法保证,但即使失败,它也应该给您一些提示。
map.my_new_folder '/folders/:ancestors/:id/new', :controller => "folders",
:action => "new", :ancestors => /^(\d+\/?)*$/
map.my_show_folder, '/folders/:ancestors/:id', :controller => "folders",
:action => "show", :ancestors => /^(\d+\/?)*$/
map.my_edit_folder '/folders/:ancestors/:id/edit', :controller => "folders",
:action => "edit", :ancestors => /^(\d+\/?)*$/
...
您必须自己形成祖先字符串并将其作为选项传递给 my_x_folder_path。但是你应该得到你想要的漂亮的网址。您可能最好将其提取到一个助手中,该助手还可以根据祖先的存在动态选择资源路径或命名路由路径。