P
P
Pianista2016-05-20 14:15:32
Ruby on Rails
Pianista, 2016-05-20 14:15:32

Load more with the will_paginate gem?

Hello!
I'm trying to load items when clicking on the "load more" button.
I put the will_paginate gem.
Made the following link:

<%= link_to 'Показать больше', list_path(:page => @items.next_page), :class => 'load-more-posts', :remote => true%>

In the corresponding controller added:
respond_to do |format|
        format.html
        format.json
        format.js

And created js.rb:
$("#items_<%= @list.id %>").append("<%= escape_javascript(render @items.order(rating: :desc)) %>");

As a result, the same items are constantly loaded.
Has anyone implemented this functionality? Can you suggest something?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
A
Andrey Demidenko, 2016-05-20
@Pianista

Similar is here

# posts_controller.rb
class PostsController < ApplicationController
  def index
    @posts = Post.paginate(page: params[:page], per_page: 3)
    respond_to do |format|
      format.html
      format.js
    end
  end
end

# index.html
<div class="page-header">
  <h1>My posts</h1>
</div>

<div id="my-posts">
  <%= render @posts %>
</div>

<div id="more_posts">
  <%= link_to "More posts...", posts_index_url(page: @posts.next_page), remote: true %>
</div>

# index.js.erb

$("#my-posts").append('<%= escape_javascript render(@posts)%>');
$("#more_posts").html('<%= escape_javascript(link_to("More posts...", posts_index_url(page: @posts.next_page), remote: true)) if @posts.next_page %>');

# _post.html.erb

<div>
  <h2><%= post.title %></h2>

  <small><em><%= post.created_at %></em></small>

  <p><%= truncate(strip_tags(post.body), length: 600) %></p>
</div>

N
N. Bekseitov, 2016-05-20
@nbekseitov

Endless page

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question