2016-07-25 59 views
0

我有一个索引页面上显示的记录列表。 (它们以表格形式显示)。因为其中有一些我试图将它们分成每页大约30条记录。我创建了一个搜索参数功能,其下面显示了索引。将索引参数划分为多个页面

我遇到的问题是我无法在列表中显示多个页面。截至目前,我有大约150条记录。但是,我只列出了一页,其上只有30条记录,并且无法对它们进行排序。有人会知道我可能会错过什么吗?

这里是我的代码中的这个问题得到解决的部分。

def search_params 
    default_index_params.merge(params.fetch(:record_collection, {})).with_indifferent_access 
    end 

    def default_index_params 
    { 
     per: 30, 
     page: 1, 
     sort_by: "created_at", 
     sort_direction: "desc", 
     customer_id: 0 
    } 
    end 

在我看来,我确实有一点咖啡脚本在表格中扮演一个角色。我不知道这是否是我的问题的根源,但我也有。

:coffeescript 
    $('#record_table').dataTable 
    aaSorting: [[1, 'asc']] 
    bPaginate: false 
    bFilter: false, 
    aoColumns:[null, null, null, null, null, { bSortable: false }, null, { bSortable: false }] 

我的记录集合用于定义参数,我不认为它对这个问题有用。 (但肯定可以发布,如果需要)

在此先感谢任何人谁能够帮助弄清楚这是怎么回事。

+0

直视分页。可能最流行和最容易使用的是'will_paginate' – engineersmnky

回答

1

您需要在coffescript中传递分页:true和pageLength:30,并从default_index_params方法中删除page:1,per:30。所以,你的CoffeeScript看起来就像这样:

:coffeescript 
     $('#record_table').dataTable 
     aaSorting: [[1, 'asc']] 
     paging: true 
     pageLength: 30 
     bFilter: false, 
     aoColumns:[null, null, null, null, null, { bSortable: false }, null, { bSortable: false }] 

您default_index_params会是这样的:

def default_index_params 
    { 
     sort_by: "created_at", 
     sort_direction: "desc", 
     customer_id: 0 
    } 
    end 
+0

感谢您的期待。我采取了你提供的,但不幸的是没有解决整个问题。它所做的是将页面拆分为3个,默认只有25个条目。我真的一直无法弄清楚为什么它只显示25个结果。 – kdweber89

+0

,我已经能够到目前为止,这有点儿解决了这个问题做的唯一的事情是改变'每:30'到'每:500'和显示所有记录的150窗户的具体数量之间的分裂。不过,我不希望将其用作解决方案,因为有一天可能会有超过500条记录。 (我真的希望所有这些都有一定意义,并且我非常感谢你愿意帮忙一下。) – kdweber89

+0

pageLength:30会给你每页30条记录,并且你有150条记录,所以它会用30条记录分页每页记录,我认为你缺少的东西检查此https://datatables.net/ –