我的控制器中有一个查询,如下所示:
@temp = connection.execute("select test_id from mastertest limit 500;")
现在,我在视图中的表格中显示此处提取的结果。但我想将结果限制为每页10行。我知道我可以使用will_paginate和kaminari
https://github.com/amatsuda/kaminari
https://github.com/mislav/will_paginate
但是,任何人都可以在我的SQL查询中使用确切的语法或示例代码来应用分页,以及如何在视图中显示结果。
答案 0 :(得分:3)
如果您希望使用sql查询进行分页,则需要将mysql offset 关键字与 limit 子句一起使用。所以你会得到像结果一样的精确分页。我希望下面的代码可以帮到你。
current_page = current_page || 1
per_page = 10
records_fetch_point = (current_page - 1) * per_page
query = "select test_id from mastertest limit #{per_page}
offset #{records_fetch_point};"
@temp = connection.execute(query)
答案 1 :(得分:1)
你能不能只使用mastertest
模型?而不是connection.execute
(模型在app / models中)
#using kaminari
relation = Mastertest.order(:id).limit(500).page(1).per(10)
relation.each do |row|
puts row.test_id
end