【问题标题】:Building nested routes for a resource that use acts_as_tree为使用acts_as_tree的资源构建嵌套路由
【发布时间】:2011-08-23 16:27:30
【问题描述】:

你知道如何动态生成路由如:

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

我问这个问题是因为我有一个充当树的Folder 模型(它有一个parent_id 字段),并且它的to_param 方法返回它的name,它在@987654326 的范围内是唯一的@。所以,每个:parent_id 和事件:id 都是name。以下是路径示例(包含 4 个子文件夹):

/home/desktop/projects/rails/foobar

...第一个:parent_id(根)是“home”,:id 是“foobar”。

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

/home/music

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

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

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 nested-routes acts-as-tree


    【解决方案1】:

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

    【讨论】:

    • 正是我需要的!谢谢你,@edgerunner!
    猜你喜欢
    • 2012-04-21
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    相关资源
    最近更新 更多