我正在开发一个非常简单的博客引擎,不需要花哨或口哨,而且我已经解决了任意数量子类别的构建路径问题。
我希望有一个帖子视图,显示该类别中的所有帖子(帖子#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;,将不胜感激。如果你能指出一个可以很好地处理这个问题的宝石,我可以进行逆向工程,那就太棒了。