0

両親と子供の名前をインデントで印刷しようとしています。しかし、ビューでそれを行う方法がわかりません。(haml)

自己結合のあるモデルがあります:(構造を説明するために、他の属性などもありますが、それらは無関係だと思います)

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

したがって、階層があり、次のようなものが必要です(属性「名前」を想定してみましょう):

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 に答える