在我有一个分页项目的id的情况下,我如何找到它的页码?
我正在使用rails 3和kaminari.
不幸的是,将页码作为参数传递不是一个选项.分页的项目是由用户生成的内容随时间发展而维护的图像库的图像.这意味着图像可能会在第一周出现在第一页,但第二页可能在下一周出现.
另一个选择是维护一个数字的图像顺序(acts_as_list),在我的情况下,这是不可能的,因为照片可能会出现在不同范围的多个画廊中.
编辑:
已经在这个问题上添加了一个赏金,因为我在几年前在各个地方看到同样的问题,没有解决办法.如果没有有效的记录解决方案出现,我很乐意接受一个SQL查询.
解决方法
# Your "per_page" count per_page = 30 # Your Image instance: @image = Image.find_your_image # sql. If you're ordering by id,how many lower IDs are there? position = Image.where("id <= ?",@image.id").count # Your page page = (position.to_f/per_page).ceil
class Image < ActiveRecord::Base def page(order = :id,per_page = 30) position = Image.where("#{order} <= ?",self.send(order)).count (position.to_f/per_page).ceil end end
@image.page @image.page(:created_at) @image.page(:title,10)
原文地址:https://www.jb51.cc/mssql/82500.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。