Rails:基于树的层次结构的路由

时间:2015-02-03 07:18:31

标签: ruby-on-rails ruby

我正在开发一个非常简单的博客引擎,不需要花哨或口哨,而且我已经解决了任意数量子类别的构建路径问题。

我希望有一个帖子视图,显示该类别中的所有帖子(帖子#index)和一个显示特定帖子的视图(帖子#show)。

我有以下型号

class Category < ActiveRecord::Base
  belongs_to :parent, foreign_key: 'parent_id', class_name: 'Category'
  has_many :children, foreign_key: 'parent_id', class_name: 'Category'
  has_many :posts
end

class Post < ActiveRecord::Base
  belongs_to :category
end

如您所见,该类别可以将类别作为父类。我希望能够按照以下方式做点什么:

example.com/category1/category2/.../categoryn

渲染帖子#index

example.com/category1/category2/.../categoryn/post1

渲染帖子#show

我一直试图使用globbing,la:

get '(*categories)' => 'posts#index', as: :posts
get '(*categories)/:id' => 'posts#show', as: :post

但是posts_path保持了应该由post_path处理的:id。如果我反转路线,则categoryn被视为post:id,而不是树中的底部类别。

Ruby on Rails: Routing for a tree hierarchy of places是我能找到的最接近使用globbing的,但它并没有解决:id问题。

任何帮助,甚至是&#34;由于这些原因而无法做到这一点&#34;,将不胜感激。如果你能指出一个可以很好地处理这个问题的宝石,我可以进行逆向工程,那就太棒了。

0 个答案:

没有答案