will_paginate com rolagem sem fim | Rails4
ESTA É A SOLUÇÃO
Então estou usandowill_paginate / Bootstrap Irá Paginar com rolagem sem fim.
Para obter o Pagination funcionando:
1.) No meu controlador eu atualizei minha ação de índice com
@clips = Clip.order("created_at desc").page(params[:page]).per_page(20)
2.) Editar minha visualização de índice:
<%= will_paginate @clips%>
FEITO
Paginação funciona bem.
To Add Endless scrolling
Eu fiz os mesmos passos que no meu anterior Rails 3 App.
1.) Editar meus clips.js.coffee
jQuery ->
$('#clips-masonry').imagesLoaded ->
$('#clips-masonry').masonry itemSelector: ".clips-masonry" # Thats my Masonry
if $('.pagination').length # Thats for the Endless Scrolling
$(window).scroll ->
url = $('.pagination .next_page a').attr('href')
if url && $(window).scrollTop() > $(document).height() - $(window).height() - 50
# What to do at the bottom of the page
$('.pagination').text("Fetching more Clips...")
$.getScript(url)
$(window).scroll()
2.) Crie um index.js.erb com:
$boxes = $('<%= j render(@clips) %>')
$('#clips-masonry').append( $boxes ).imagesLoaded( function(){
$('#clips-masonry').masonry( 'reload');
});
<% if @clips.next_page %>
$('.pagination').replaceWith('<%= j will_paginate(@clips) %>');
<% else %>
$('.pagination').remove();
<% end %>
3) Adicionado o formato.js à minha ação de índice do controlador
def index
@clips = Clip.order("created_at desc").page(params[:page]).per_page(12)
respond_to do |format|
format.html
format.js
end
end
4.) Meu _clip.html.erb é empacotado com o div
<div class="clip-box clips-masonry" data-no-turbolink>