5
que tienen un modelo de auto-unió:autoensamblarse ansioso de cargar recursivamente?
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
Posteriormente deseo hacer la primera llamada 1 sql para agarrar todas las observaciones pertinentes y, a continuación, de forma recursiva hacerlos.
¿Cómo puedo esperar de forma recursiva?
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
¿No debería ser 'show_comments (child)'? – Finbarr
Oh, sí, probablemente haya errores tipográficos en el código, solo tiene la intención de presentar una idea general de lo que quiero. –
en pocas palabras: no se puede. Aconsejaría usar [awesome_nested_set] (https://github.com/collectiveidea/awesome_nested_set) o [ancestry] (https://github.com/stefankroes/ancestry) que son implementaciones diferentes que abordan este problema (estructuras profundamente anidadas en una sola mesa) –