14

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> 
+0

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

+0

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 –

+0

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

risposta

7

Ok, ho capito di lavoro con la mia domanda aggiornato, tutti coloro che si imbatte in questo problema, questa è la soluzione.