javascript ruby-on-rails twitter-bootstrap ruby-on-rails-4 will-paginate

javascript - will_paginate con desplazamiento sin fin | Rails4



ruby-on-rails twitter-bootstrap (1)

Ok, lo tengo trabajando con mi Pregunta actualizada, todos los que tropiezan con este problema, Esta es la solución.

ESTA ES LA SOLUCIÓN

Así que estoy usando will_paginate / Bootstrap Will Paginate con Endless Scrolling .

Para que la Paginación funcione:

1.) En mi controlador actualicé mi acción de índice con

@clips = Clip.order("created_at desc").page(params[:page]).per_page(20)

2.) Editar mi vista de índice:

<%= will_paginate @clips%>

HECHO

La paginación funciona bien.

To Add Endless scrolling hice los mismos pasos que en mi aplicación Rails 3 anterior.

1.) Edita mis 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.) Crea 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.) Se agregó format.js a mi acción índice de 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.) Mi _clip.html.erb está envuelto con el div

<div class="clip-box clips-masonry" data-no-turbolink>