ruby-on-rails - Searchkick分页,限制和偏移问题,滑轨

标签 ruby-on-rails elasticsearch pagination kaminari searchkick

我想在第一行显示3个最后的外观,然后我要显示所有其他但没有3个最后的外观。
这是我的代码

def index
    query = params[:query].presence || "*"
    conditions = {}
    conditions[:available] = true
    conditions[:look_tags] = params[:look_tags] if params[:look_tags].present?
    @last_3_looks = Look.search query, where: conditions, order: { created_at: :desc }, limit: 3
    @looks = Look.search query, where: conditions, order: { created_at: :desc }, page: params[:page], per_page: 8
end
问题是如果我像下面这样放置偏移量,我在每页上都有相同的8个外观,请问如何处理?
@looks = Look.search query, where: conditions, order: { created_at: :desc }, page: params[:page], per_page: 8, offset: 3
end

最佳答案

好像您要计算偏移量,例如:

  page = params[:page].to_i
  per_page = 8
  starting_offset = 3
  offset = starting_offset + ((page - 1) * per_page)

  @looks = Look.search query, where: conditions, order: { created_at: :desc }, page: page, per_page: per_page, offset: offset
但是您也可以考虑使用kaminari gem,它将为您进行计算。
看起来像Searchkick allows that
另外,请参阅此answers

关于ruby-on-rails - Searchkick分页,限制和偏移问题,滑轨,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64276539/

相关文章:

css - 如何在 Rails 4 应用程序中设置静态页面的样式

ruby-on-rails - 在 Rails 的 LESS 文件中使用数据库值

elasticsearch - 如何将 2 个匹配查询加入到 elasticsearch 查询中?

mysql - SQL 分页尝试 : OFFSET (offset) is not a valid input at this position

ruby-on-rails - 如何从谷歌分析导入报告?

ruby-on-rails - 无法安装 gem pg - 找不到 PostgreSQL 客户端库 (libpq)

php - 在数据库表中搜索大量关键字

node.js - 用于实时搜索的 ElasticSearch、mongoDB、nodejs

java - Spring Boot 分页 - Mockito 存储库 findAll(Pageable) 返回 null

php - 使用分页按类别列出项目