【问题标题】:Ruby on Rails partial pagination issueRuby on Rails 部分分页问题
【发布时间】:2016-01-19 10:05:22
【问题描述】:

如何在一个页面中使用两个分页并使它们分开工作?例如,见下图:

图片顶部有两个分页:左边第一个,右边第二个。如果我点击第一个分页,那么我只需要加载第一个分页的数据,而不需要加载整个页面;第二个应该保持不变并分开。

下面是显示数据的控制器代码:

@first= Post.paginate(page: params[:page], :per_page => 4).order('post_id DESC')
@second= Post.paginate(page: params[:page], :per_page => 4).order('post_id ASC')

分页will_paginate

【问题讨论】:

  • 您使用什么 gem 进行分页?
  • gem 'will_paginate', '3.0.7'
  • 如果你只想加载页面的特定部分,你必须依赖javascript(不确定turbolinks是否能很好地处理这个问题,阅读它的文档——我通常会摆脱它们在我的大部分项目中)。

标签: ruby-on-rails ruby pagination


【解决方案1】:

对于单独加载,您将您的分页参数更改为params[:page] 更改为params[:first] 第二个是相同的过程并使用您的查看页面<%= will_paginate @first, :param_name => 'first or second' %> 然后您尝试使用ajax 页面加载脚本来显示结果而无需整个页面加载。您需要在当前页面文件夹中创建 index.js.erb 文件。本教程很好地描述了Pagination with AJAX

希望能帮到你

【讨论】:

    【解决方案2】:

    您必须使用

    为两个部分设置单独的参数名称(而不是一个 page
    <%= will_paginate @first, :param_name => 'first' %>
    <%= will_paginate @second, :param_name => 'second' %>
    

    在你的控制器上你可以写

    @first= Post.paginate(page: params[:first], :per_page => 4).order('post_id DESC')
    
    @second= Post.paginate(page: params[:second], :per_page => 4).order('post_id ASC')
    

    你可以看到will_paginate documentation

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 2023-04-02
    相关资源
    最近更新 更多