ruby-on-rails - Searchkick 分页、限制和偏移问题、rails
问题描述
我想在第一行显示最后的 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
解决方案
只需从@looks 中排除前 3 个结果(检查第 6 行)
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
conditions[:id] = { not: @last_3_looks.results.collect(&:id) }
@looks = Look.search query, where: conditions, order: { created_at: :desc }, page: params[:page], per_page: 8
推荐阅读
- javascript - Eslint 在大括号之间添加了不必要的空格,Prettier 显示错误
- xamarin.forms - 基于 Xamarin Forms 中的绑定项目计数显示 Datagrid
- javascript - 更改文本字段javascript的值
- angular - 在一个应用程序中将不同的标题样式应用于不同的 ag-grid 实例
- python - 基于 Python 或 R 中的值的不同高度和宽度的钻石散点图
- javascript - 台式机和移动设备的产品轮播?(CSS,Javascript,html)
- java - 从 Collectors.groupingBy(x, toSet()) 的对象中提取值
- laravel - Laravel - 当任何标题字段为空时如何禁用提交
- android - 如何更改android进度条粗细
- flutter - Flutter:StreamBuilder 快照——无数据