Самостоятельное присоединение, стремящееся загружаться рекурсивно?

У меня есть самосоединенная модель:

class Comment < ActiveRecord::Base
     belongs_to :parent, :class_name => 'Comment', :foreign_key => 'parent_id'
     has_many :children, :class_name => 'Comment', :foreign_key => "parent_id"
end

Позже я хочу сначала сделать 1 вызов sql для захвата все соответствующие комментарии, а затем рекурсивно их отобразить.

Как мне выполнить рекурсивную загрузку?

comments = Comment.where(:post_id => @post_id).includes(:comments=> [:comments => [:comments .... #How do I get this to recursively eager load?

def show_comments(comment)
   render comment
   comment.children.each do |child|
       show_comments(child)
   end
end
5
задан Razor Storm 5 January 2012 в 08:08
поделиться