2009-10-17 105 views
0

我有这个Rails的模型:(为清楚起见移除参数)我该如何处理类似文件夹的模型结构?

class Folder < ActiveRecord::Base 
    belongs_to :parent, :class_name => :folder 
    has_many :children, :class_name => :folder 
end 

我要像使用文件系统文件夹这种模式。我该如何配置路线和控制器才能实现这一点?

回答

1

1)对于型号:退房acts_as_tree

2)对于路线:这样做

map.folder '/folders/*path', :controller => 'folders', :action => 'show' 

,并在FoldersController

def show 
    # params[:path] contains an array of folder names 
    @folder = Folder.root 
    params[:path].each |name| 
    @folder = @folder.children.find_by_name(name) or raise ActiveRecord::RecordNotFound 
    end 
    # there you go, @folder contains the folder identified by the path 
end 
相关问题