问题描述
我正在尝试通过分页传递偏移量。
params[:page] = 1 if params[:page].nil?
@pagination_count = (params[:pagination_count].present?) ? params[:pagination_count] : 50
offset = ''
if params[:page] != 1
offset = "limit 50 offset #{(params[:page].to_i - 1) * 50}"
else
offset = "limit 50"
end
posts_count = ActiveRecord::Base.connection.execute(query + ' where ' + query2 + query1).count
@posts = ActiveRecord::Base.connection.execute(query + ' where ' + query2 + query1 + offset).to_a.paginate(page: params[:page],per_page: 50,total_entries: posts_count)
但是,在单击第2页(分页号)时不起作用,查看了第2页,但是没有得到数据。 在第一页上显示数据。
解决方法
您同时使用自己的自制分页(偏移)和宝石进行分页。您的查询返回50条记录(第二页上正确的记录),然后分页gem尝试从这50条记录中选择第二页。当然,在这种情况下,第二页上没有帖子,因为所有50条都在第一页上
仅使用一种溶液进行分页。仅自制(限制和您手动完成的偏移量,删除.paginate
)或宝石(删除偏移量查询,仅使用.paginate
)