jav*_*2.0 5 activerecord pagination ruby-on-rails
我的任务是在不使用gem的情况下为Rails项目创建“上一个10”,“下一个10”,“最新”和“最旧”链接。
在控制器中,我可以在表中显示10个项目的第一组(最新):
...
before_action :set_page, only: [:index]
...
def index
@rows = Row.order(created_at:).limit(10)
end
...
private
def set_page
@page = params[:page] || 0
end
...
Run Code Online (Sandbox Code Playgroud)
但是,我认为这不能正确地将新页面设置为10个新页面,因为我无法更改页码(hxxp:// ...?page = 1)以获取下一组10。
我尝试了几页的说明,包括:
任何方向都非常感谢。至于第二个示例站点,我有两个模型类:
看来我应该在编辑:
但不知道在哪里找到/我应该如何添加它。感谢您耐心等待初学者的问题。
作为参考,erb文件链接格式:
<%= link_to 'Next 10', rows_path %>
Run Code Online (Sandbox Code Playgroud)
除了没有告诉数据库您实际上要检索接下来的10组记录之外,您所拥有的一切都在正确的轨道上。为此,您需要传递offset,它将告诉DB您要从中检索10条记录的“起点”。
您可以通过以下方式在代码中执行此操作:
def index
@rows = Row.order(created_at: :desc).limit(10).offset(@page * 10) # This assumes that the page numbering starts from 0 instead of 1 as I gather from the question
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3091 次 |
| 最近记录: |