0

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

除了当天的顶部,您还可以看到昨天和前两天的顶部图像……我想添加一个功能,允许某人在选择一张图像时查看画廊的上一张图像……换句话说,您可以选择图像5/48 并可以通过单击箭头转到 4/48 图像(上一张)……</p>

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

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

谢谢

4

2 回答 2

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如果您希望“上一个”链接在达到当天排名最高的图像后及时返回,这更有意义。

于 2012-06-26T21:49:29.027 回答
0

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

Ruby on Rails 中的面包屑

于 2012-06-26T16:05:19.033 回答