Url rewriting 如何在Rails 3.1中创建无限层次的html树?
我有一个名为Url rewriting 如何在Rails 3.1中创建无限层次的html树?,url-rewriting,ruby-on-rails-3.1,navigation,hierarchical-data,Url Rewriting,Ruby On Rails 3.1,Navigation,Hierarchical Data,我有一个名为Metrics的表,它是一个自引用表。这意味着它与无限多个子对象存在父/子关系 我有这样一条路线: match "/metrics/:id/children" => "metricchildren#index", :as => "metric_children" metricchildrencontoller加载度量的子项并呈现索引页 该页面看起来像(根父级称为总计): 现在,我要做的是让用户单击总费用,然后URL看起来像: http://example.com/met
Metrics
的表,它是一个自引用表。这意味着它与无限多个子对象存在父/子关系
我有这样一条路线:
match "/metrics/:id/children" => "metricchildren#index", :as => "metric_children"
metricchildren
contoller加载度量的子项并呈现索引页
该页面看起来像(根父级称为总计):
现在,我要做的是让用户单击总费用
,然后URL看起来像:
http://example.com/metrics/42-totals/children/78-total-expense
42
是总计
指标的ID,78是总费用
指标的ID。因此,当您深入到总费用时,它将创建一个如上所述的表,当您单击指标时,URL的增长如下:
http://example.com/metrics/42-totals/children/78-total-expense/98-total-direct
http://example.com/metrics/42-totals/children/78-total-expense/98-total-direct/102-blah
等等
与Github的工作原理非常相似。更好的是不必在URL中指定ID
关于如何做到这一点,有什么建议吗?我想我对如何做有一个想法,但我不想重新发明那个轮子
感谢关于“递归路由”,请参阅。简单的回答是,这实际上是相当容易的路线环球
现在,我使用一个slug而不是数据库ID来滚动我自己的permalinks,但是我听说了一些很棒的事情
http://example.com/metrics/42-totals/children/78-total-expense/98-total-direct
http://example.com/metrics/42-totals/children/78-total-expense/98-total-direct/102-blah