0

我正在编写一个简单的留言板系统。关于祖先的一件事是它使用单个调用,因此如果我使用限制和偏移量调用,它不会返回一致的顶级元素列表。我需要 @per_page 和 the_offset 来处理分页。

所以我目前有这样的事情:

@posts=MbPost.where('forum_id=?',params[:id]).offset(the_offset).limit(@per_page).order('updated_at desc')

但需要偏移量和@per_page 反映顶层(即祖先为NULL)而不是元素总数。

关于如何做到这一点的任何想法?

提前谢谢

4

1 回答 1

1

您将无法使用单个数据库查询来做到这一点。

原因是,如果分页数为 10,您想显示 10 个顶级帖子(实际上是 15 个帖子),但在下一页中,如果再显示 10 个顶级帖子,您可能会显示 20 个实际帖子。所以分页大小是不同的。

处理该问题的另一种方法是有两个查询:一个用于带有 : 的实际页面,ancestry is null并应用限制和偏移量。然后另一个查询获取所有帖子,这些帖子是您在先前查询中拥有的帖子的任何级别子级。

于 2012-12-14T20:02:40.357 回答