2016-07-25 3 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

Вам необходимо передать подкачку: true и pageLength: 30 в coffescript и просто удалить страницу: 1, за: 30 из метода default_index_params. Так что ваш 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

Единственное, что я смог сделать до сих пор, что это проблема, заключается в том, чтобы изменить «per: 30» на «per: 500» и отображает все 150 записей, разделенных между определенным количеством окон. Однако я не хочу использовать это как решение, поскольку в один прекрасный день может быть более 500 записей. (Я действительно надеюсь, что все это имеет мало смысла, и я очень благодарен за вашу готовность немного помочь.) – kdweber89

+0

pageLength: 30 даст вам 30 записей на странице, и у вас будет 150 записей, поэтому он будет разбивать все записи на 30 на записях на странице, я думаю, что вам что-то не хватает, проверьте это https://datatables.net/ –

Смежные вопросы