需要帮助才能理解这个查询(rails)

时间:2012-06-26 15:55:51

标签: sql ruby-on-rails

我有使用rails应用程序解决的架构问题。我有每天都可以投票(上或下)的图像库。这些图像按其得分和created_at时间戳进行排序,因此我们获得了包含48张图像的顶级图像库(即使白天上传的图像超过48张)。

除了当天的最高点,您还可以看到昨天和前两天的顶级图片...我想添加一个功能,允许有人在选择一张图片时看到图库的上一张图片...换句话说你可以选择图像5/48,并可以通过点击箭头转到4/48图像(前一个)...

以同样的方式,昨天的第一张顶部图像的上一张图像应该引导您到今天的最后一张顶部图像......

这可能很简单,但我找不到合适的查询来完成这项工作......有什么建议吗?

由于

2 个答案:

答案 0 :(得分:0)

你在谈论面包屑。我没有使用Ruby,但这里有一个不同的问题,你的答案可能是你正在寻找的

Breadcrumbs in Ruby on Rails

答案 1 :(得分:0)

好吧,如果您的查询已经按照正确的顺序获取图像并知道当前图像,那么很容易找到下一个/上一个图像。假设@id是您当前的图片ID,您可以执行以下操作:

top_images = Image.order("created_at ASC, score DESC")
prev = top_images.where("id < ?", @id).limit(1)
next = top_images.where("id > ?", @id).limit(1)

ORDER BY created_at ASC, score DESC如果您希望在达到当天排名最高的图片之后能够及时返回“先前”链接,则会更有意义。