самостоятельное присоединение готово к загрузке рекурсивно? - PullRequest
5 голосов
/ 05 января 2012

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

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

Позже я хочу сначала сделать вызов 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

1 Ответ

3 голосов
/ 18 апреля 2013

Вы можете создать метод, который извлекает глубокое вложение идентификаторов, загружает их, и рельсы будут использовать его как кеш.

...