0

致力于显示和隐藏评论,默认情况下我显示 2 个最新的:

辅助方法:

  def comments(micropost_id)
        Comment.where(:micropost_id => micropost_id).limit(2).order("created_at DESC").reverse
  end

2条评论将以这种方式显示:

评论 1(10 小时前发送)

评论 2(一小时前发送)

我有一个显示所有评论的可点击按钮,它将该特定微博的所有评论添加到列表中。这很好,除了我需要除 2 条最新的评论之外的所有评论。

使用offset(2)带走了前 2 条评论。我基本上需要做相反的事情。所以想知道是否有什么我可以链接到offset方法上来实现这一点,或者是否有专门的方法来做相反的事情.offset()

提前致谢亲切的问候

4

2 回答 2

1

我会从数据库中获取所有注释并丢弃应用程序代码中的最后两条。这使得查询变得非常简单和高效。数据库传统上是最难扩展的组件,因此您不应对其造成任何不必要的负载。

于 2012-04-18T11:28:41.033 回答
1

您可以按照 sergio 的建议进行操作,在从数据库加载它们后将最后两个切掉,或者您可以反转查询中的 order 子句,偏移两个然后反转结果。

于 2012-04-18T11:29:57.260 回答