Пагинация, вместо бесконечной прокрутки, показывает. Как заставить этот код работать? - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь реализовать бесконечную прокрутку, используя will_paginate. Учитывая мой текущий код, вывод состоит в том, что на каждой странице содержимое печатается дважды (...), и когда я добираюсь до нижней части страницы, появляется только обычная нумерация страниц (без бесконечной прокрутки). Когда я добираюсь до последней страницы, нумерация страниц исчезает (так что работает pagination.remove).

Приложение простое. Пользователи перечислены, поэтому другие пользователи могут дать им рекомендации.

index.html.erb:

<div id="users">

  <%= render :partial => 'help/user' %>

</div>

<%= will_paginate @users %>

<script>
$('#users').append('<%= j render :partial =>'help/user' %>');
<% if @users.next_page %>
  $('.pagination').replaceWith('<%= j will_paginate(@users) %>');
<% else %>
  $('.pagination').remove();
<% end %>
<% sleep 1 %>
</script>

Я поместил скрипт выше, потому что когда я помещал его в index.js.erb, он ничего не делал.

help.coffee (указанный выше файл находится в папке справки и управляется контроллером справки):

jQuery ->
  if $('.pagination').length
    $(window).scroll ->
      url = $('.pagination .next_page').attr('href')
      if url && $(window).scrollTop() > $(document).height() - $(window).height() - 50
        $('.pagination').text('Fetching more...')
        $.getScript(url)
    $(window).scroll() 

контроллер справки:

  @users = User.all.order("updated_at DESC").paginate(page: params[:page], per_page: 5)
  respond_to do |format|
    format.html
    format.js
  end
...