Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如果第一级是sort desc,第二级是sort asc,如何进行嵌套注释?_Ruby On Rails_Comments_Nested - Fatal编程技术网

Ruby on rails 如果第一级是sort desc,第二级是sort asc,如何进行嵌套注释?

Ruby on rails 如果第一级是sort desc,第二级是sort asc,如何进行嵌套注释?,ruby-on-rails,comments,nested,Ruby On Rails,Comments,Nested,我正在使用rails和awesome_嵌套集创建嵌套注释(艺术家有许多sketchbook注释)。我想有第1级是排序描述的时间戳,这样我们就可以看到最新的评论在顶部,上面的折叠。我希望评论的评论按ASC时间戳的时间顺序排列,这样我们就可以按照创建对话的顺序进行跟踪。像堆栈溢出一样,我计划现在只进行1级嵌套 #controller def create #create 1st level comment as simple association @sketchbook_comment =

我正在使用rails和awesome_嵌套集创建嵌套注释(艺术家有许多sketchbook注释)。我想有第1级是排序描述的时间戳,这样我们就可以看到最新的评论在顶部,上面的折叠。我希望评论的评论按ASC时间戳的时间顺序排列,这样我们就可以按照创建对话的顺序进行跟踪。像堆栈溢出一样,我计划现在只进行1级嵌套

 #controller
def create

 #create 1st level comment as simple association
 @sketchbook_comment = @artist.sketchbook_comments.create(params[:sketchbook_comment])

 #if replying to a comment, only then do we nest
 if parent = @artist.sketchbook_comments.where(:id => params[:parent_id]).first
   @sketchbook_comment.move_to_child_of(parent)
 end

  redirect_to :back
end
我能够在一次DB调用中获得关联的所有注释:

artist.sketchbook_comments.order("lft ASC")
但似乎所有新的根级别注释都放在树的“末尾”或“右侧”(lft值大于任何以前的节点)。因此,按lft排序注定我只能按时间顺序排列


有什么建议吗?(我知道我可以通过获取所有根节点顺序(“created_at DESC”)来实现这一点,然后在每个级别运行comment.children.order(“lft ASC”),但如果可能的话,我不想多次点击数据库。)

我最后添加了一个模型方法,该方法将使用awesome_嵌套集的move_to_left_of(id)以便在插入根级别注释时将新节点定位在左侧