Rails,点击“2”号(分页)或其他页面后,分页偏移不起作用
Rails, Pagination offset not working, after clicking on '2' number(pagination) or other's page's
我正在尝试在分页中传递偏移量。
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 页,但未获取数据。
第一页数据显示。
您正在使用自己的自制分页(偏移量)和 gem 分页。您的查询 returns 50 条记录(第 2 页上的正确记录)然后分页 gem 尝试从这 50 条中 select 第 2 页。当然,第 2 页没有帖子在这种情况下是页面,因为所有 50 个都在第一页上。
只使用一种分页解决方案。仅自制程序(限制 + 手动完成的偏移量,删除 .paginate
)或仅 gem(删除您的偏移量查询,仅使用 .paginate
)
我正在尝试在分页中传递偏移量。
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 页,但未获取数据。 第一页数据显示。
您正在使用自己的自制分页(偏移量)和 gem 分页。您的查询 returns 50 条记录(第 2 页上的正确记录)然后分页 gem 尝试从这 50 条中 select 第 2 页。当然,第 2 页没有帖子在这种情况下是页面,因为所有 50 个都在第一页上。
只使用一种分页解决方案。仅自制程序(限制 + 手动完成的偏移量,删除 .paginate
)或仅 gem(删除您的偏移量查询,仅使用 .paginate
)