加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – Rails分页 – 从实例id查找页码

发布时间:2020-12-12 16:09:40 所属栏目:MsSql教程 来源:网络整理
导读:在我有一个分页项目的id的情况下,我如何找到它的页码? 我正在使用rails 3和kaminari. 不幸的是,将页码作为参数传递不是一个选项.分页的项目是由用户生成的内容随时间发展而维护的图像库的图像.这意味着图像可能会在第一周出现在第一页,但第二页可能在下一周
在我有一个分页项目的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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读