내가 문서에 중첩 된 주석 트리있어 mongoid와 중첩 된 트리를 표시하고 레일 :효율적인 방법은 다음과 같이 embeds_many_recursively mongoid를 사용하여,
가보기에 전달하는 가장 효과적인 방법은 무엇입니까Document: {
...
comments: [{
...
updated_at,
child_comments: [{
...
updated_at
child_comments: [{...},{...}],
...},{...}]
...}]
...}]
...}
첫 번째 수준 'comment updated_at'속성에 의해 정렬되는 방식으로?
def flatten_comments
@flat_comments = []
self.comments.order_by([[:updated_at, :desc]]).each do |comment|
flatten_comments_iterator(comment)
end
return @flat_comments
end
def flatten_comments_iterator(comment)
@flat_comments << comment
comment.child_comments.each {|reply| flatten_comments_iterator(reply)}
end
하고 단지 배열을 통해보기에 반복 : 나는 주 문서 모델 안에이 함께했다 순간
.
문제는 다음과 같습니다. 1) 재귀 적 평면화에서 순서가 어딘가에서 손실되어 어디서나 필요한 순서로 항목을 추가하는 것처럼 보입니다. 클래스 변수 범위 및 액세스와 관련이 있습니다.
2) 간단한 검색을하는 것이 가장 효율적인 방법인지 잘 모르겠습니다.
이러한 종류의 작업을 효율적으로 처리하는 방법에 대한 조언과 경험에 감사드립니다.