私はrailsとawesome_nested_setを使ってnested_commentsを作成しています(アーティストには多くのsketchbook_commentsがあります)。私は第1レベルをタイムスタンプで並べ替えるようにしています。これにより、上の一番上の、コメントの上にある最新のコメントを見ることができます。コメントのコメントはタイムスタンプのASCの時系列順になるようにして、会話が作成された順番に従うようにしたいと思います。スタックのオーバーフローと同様に、今のところ入れ子のレベルは1つだけです。第1レベルがソートdescで第2レベルがソートアスペクトのネストされたコメントを行う方法?
artist.sketchbook_comments.order("lft ASC")
しかし、すべての新しいルートレベルのコメントは「終了」または「右に入れているようだ:私は1つのDBコールに関連性についてすべてのコメントを取得することができるよ
#controller
def create
#create 1st level comment as simple association
@sketchbook_comment = @artist.sketchbook_comments.create(params[:sketchbook_comment])
#if replying to a comment, only then do we nest
if parent = @artist.sketchbook_comments.where(:id => params[:parent_id]).first
@sketchbook_comment.move_to_child_of(parent)
end
redirect_to :back
end
ツリーの「側」(以前のノードよりも大きいlft値を持つ)。それゆえ、私は、どこかで時系列順にしか分類できない。
提案がありますか? (私は、すべてのルートノードの注文( "created_at DESC")を取り出し、各レベルでcomment.children.order( "lft ASC")を実行することでこれを達成できると知っていますが、可能ならばDBを複数回)