questa è la soluzionewill_paginate con Scrolling infinito | Rails4
Così sto usando will_paginate/Bootstrap Will Paginate con Endless scorrimento.
Per ottenere risultati di lavoro Impaginazione:
1.) Nel mio controller ho aggiornato la mia azione indice con
@clips = Clip.order("created_at desc").page(params[:page]).per_page(20)
2.) Modificare il mio vista indice:
<%= will_paginate @clips%>
DONE
L'impaginazione funziona correttamente.
To Add Endless scrolling
ho fatto gli stessi passaggi della mia precedente app Rails 3.
1.) Modificare il mio 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.) Creare un index.js.erb con:
$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.) Aggiunto format.js all'azione dell'indice del controller
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.) mio _clip.html.erb è avvolto con il div
<div class="clip-box clips-masonry" data-no-turbolink>
Qual è il problema? il codice di paginazione a scorrimento continuo funzionerà (anche se non è compatibile con i turbolinks): se elencherai il tuo errore, potresti ottenere qualche informazione. – trh
Il problema è che non funziona :), Non c'è errore, infinito non funziona :(Penso che abbia a che fare con il format.js che devo includere nel mio controller, ma in Rails 4 i controller è cambiato e non riesco a farlo funzionare –
Funziona bene per me, sto ancora usando anche il blocco respond_to con format.js. Qual è l'evento che chiama nel tuo log, html? qualcosa come 'clip? page = 2 'con' ClipsController # index come HTML'? – trh