2

你知道如何動態地生成路線,如:對於使用資源建設嵌套路線acts_as_tree

... (/:parent_id(/:parent_id(/:parent_id(/:parent_id))))/:id 

我問這個問題,因爲我有一個Folder模型充當樹(它有一個parent_id場),並且其to_param方法返回它的name,這是uniq在parent_id的範圍內。所以,每個:parent_id和事件:idname。下面是路徑的例子(與4子文件夾):

/home/desktop/projects/rails/foobar 

...其中第一:parent_id(根)是「家」和:id是「foobar的」。

路線的另一個例子是(1子文件夾):

/home/music 

...這裏,你可以看到,params[:parent_id] == 'home'params[:id] == 'music'

有沒有一種乾淨的方式來寫一個美麗的Rails 3路線來處理這些可能的嵌套路線?謝謝!!

回答

4

爲什麼不使用route globber並在控制器中分解?

# routes.rb 
get "/*folders/:id" => "files#show" 

*folders部分將遍歷多個URL段。

# files_controller.rb 
def show 
    folders = params[:folders].split('/') # gives an array of folder names 
    # do whatever else necessary 
end 
+0

正是我需要的!謝謝@edgerunner! – 2011-05-11 22:18:54