Задать вопрос
@Pianista

Load more с гемом will_paginate?

Всем привет!
Пробую сделать подгрузку пунктов при нажатии на кнопку "загрузить больше"
Поставил гем will_paginate.
Сделал следующую ссылку:
<%= link_to 'Показать больше', list_path(:page => @items.next_page), :class => 'load-more-posts', :remote => true%>

В соответствующий контроллер добавил:
respond_to do |format|
        format.html
        format.json
        format.js

И создал js.rb:
$("#items_<%= @list.id %>").append("<%= escape_javascript(render @items.order(rating: :desc)) %>");


В итоге подгружаются постоянно одинаковые пункты.
Кто-нибудь реализовывал такой функционал? Можете что подсказать?
  • Вопрос задан
  • 447 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Dem1
@Dem1 Куратор тега Ruby on Rails
Ruby on Rails developer
Похожее есть тут

# 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>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы