轨道上的红宝石 - 为使用 acts_as_tree 的资源构建嵌套路由



您知道如何生成动态路由,例如:

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

我问这个问题是因为我有一个充当树的Folder模型(它有一个parent_id字段),它的to_param方法通过parent_id的范围返回它的 uniq name。因此,每个:parent_id和事件:id都是name。下面是路径的示例(包含 4 个子文件夹):

/home/desktop/projects/rails/foobar

。其中第一个:parent_id(根)是"家",:id是"foobar"。

路由的另一个示例可能是(具有 1 个子文件夹):

/home/music

。如您所见,params[:parent_id] == 'home'params[:id] == 'music'.

有没有一种干净的方法来编写一个漂亮的 Rails 3 路由来处理这些可能的嵌套路由?谢谢!!

为什么不直接使用路由 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

相关内容

  • 没有找到相关文章

最新更新