Is it possible to have file-system-like routes with acts_as_tree?

I have a Folder model which acts_as_tree.

Is it possible that the routes represent the folder structure?


1: Folder A
  2: Folder B
  3: Folder C
    4: Folder D
5: Folder E



Is this possible?


So far as I can tell, there's no easy way to do this.

I think the best way to do this is with a set of named routes.

I haven't tested this, so there's no guarantees, but it should give you some hints even if it fails.

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+\/?)*$/

You'll have to form the ancestor string yourself and pass it as an option to my_x_folder_path. But you should get the pretty urls you want. You might be better of extracting it to a helper that can also dynamically select the resource path or the named route path based on the existence of ancestors.

Need Your Help

Differences between Page.User.Identity vs Request.LogonUserIdentity


What are the differences (behind the scenes) between Page.User.Identity and Request.LogonUserIdentity? Not the differences in type, name, etc but the differences in how they're implemented behind the