Я новичок в рубинах на рельсах, и мне нужно сделать связь Post/Comment с вложенными комментариями, например, авторами можно ответить друг другу.Ancestry, has_many_roots?
Сделано это следующим образом:
пост/comments.html:
<% @post.comments.roots.each do |c| %>
<%= nested_messages c.subtree.arrange(:order => :created_at) %>
<% end %>
Это работает довольно хорошо, но, очевидно, нуждается в большом количестве запросов, чтобы сделать дерево, как N + 1, где N - comments.root.count
.
Спасибо за помощь!
UPD: Soluton с .includes() не работает в моем случае, но я не 100% уверен, что я делаю все вещи правильно ...
Решение работало для меня было довольно очевидно - устроить комментарии сам себе, указав pOST_ID:
<%= nested_messages Comment.where('post_id = ?', @post.id).arrange(:order => :created_at) %>