0

我正在尝试用缩进打印父母和孩子的名字。但我不确定如何在视图中做到这一点。(haml)

我有一个带有自连接的模型:(只是为了给你结构,我还有其他属性等,但我认为它们无关紧要)

class Post < ActiveRecord::Base
  has_many :children,  :class_name => "Post"
  belongs_to :parent, :class_name => "Post", :foreign_key => "post_id"
end

所以它有一个层次结构,我想要这样的东西(让我们假设属性'name'):

Post 1
      Post 1.1
      Post 1.2
Post 2
      Post 2.1
              Post 2.2

我是 Ruby-on-rails 的新手。所以请多多包涵。如果我能得到一个非常解释性的答案,我将非常感激。

非常感谢你,J

4

1 回答 1

3

你可以使用递归。创建一个调用自身的部分。

# app/views/posts/_post.html.haml
= post.title
= post.content
= render partial: 'post', collection: post.children

我假设您有一个帖子控制器,它带有一个文件夹,用于在app/views/posts. 您需要在那里创建一个_post.html.haml调用自身的部分。该render行告诉您为每个帖子的孩子渲染相同的部分。

缩进可以通过css处理。

于 2013-02-07T12:24:18.237 回答