ruby-on-rails - 为使用acts_as_tree的资源构建嵌套路由

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

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

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

我问这个问题是因为我有一个充当树的 Folder 模型(它有一个 parent_id 字段)及其 to_param 方法返回其名称,该名称在parent_id范围内是唯一的。因此,每个 :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 路由来处理这些可能的嵌套路由?谢谢!!

最佳答案

为什么不直接使用 route globber并在你的 Controller 中将其分解?

# 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

关于ruby-on-rails - 为使用acts_as_tree的资源构建嵌套路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5971067/

相关文章:

ruby-on-rails - 使用 rspec 通过正则表达式检查标签的属性

javascript - jQuery UI Dialog 而不是 Rails 3 数据确认属性的 alert()

ruby-on-rails - gemspec 中的日期格式规范无效

ruby-on-rails - 我应该将 gem 版本放在我的 Gemfile 中吗?

http-status-code-404 - react 路由器 v4 : how to avoid rendering parent routes when child routes miss

ruby-on-rails - 在这种情况下是否有机会在不在开发环境中复制数据库的情况下测试 PostgreSQL 数据库?

ruby-on-rails-3 - 使用保留字时的友好 ID 和设计错误

sql - Ruby on Rails : Finding the sum of a column in a returned search query

javascript - Sails.js 在 v1、v2 等中对路由进行分组

reactjs - React-router:嵌套路由如何工作?