Проблема с Ajax - PullRequest
       8

Проблема с Ajax

0 голосов
/ 07 марта 2012

У меня есть модель комментариев, которая разбита на страницы, и я хотел бы, чтобы комментарии загружали больше комментариев на той же странице при каждом нажатии следующей кнопки. У меня есть представление о том, как это сделать, но кто-нибудь может посоветовать, как это сделать. У меня уже есть код.

Что касается раздела комментариев, а не рендера, я думаю, что, возможно, придется искать микросообщение и его идентификатор, чтобы найти нужные комментарии для добавления, но я не уверен, как связать все это вместе.

Пагинация JS

$(function() {
  $("#CommentPagin a").live("click", function() {
    $.getScript(this.href);
    return false;
  });
});

Показать JS

$("#cc").append('<%= escape_javascript(render :partial => "users/comments" )%>');

Раздел комментариев

<div id='comments'>
  <% comments = micropost.comments.paginate(:per_page => 5, :page => params[:page]) %>
  <div id="CommentPagin">
  <span class="CommentArrowIcon"></span>
  <%= will_paginate comments, :page_links => false , :class =>"pagination" %>
  </div>
<%= render 'users/comments' %>
</div>

Секция визуализации комментариев

<div id="cc">
<% comments = micropost.comments.paginate(:per_page => 5, :page => params[:page]) %>
<%= render comments %>
</div>

Контроллер пользователя

  def show
    @user = User.find(params[:id])
    @school = School.find(params[:id])
    @comment = Comment.find(params[:id])
    @micropost = Micropost.new
    @comment = Comment.new
    @comment = @micropost.comments.build(params[:comment])
    @microposts = @user.microposts.order('created_at DESC').paginate(:per_page => 10, :page => params[:page])
      respond_to do |format|
      format.html
      format.js
     end
  end

1 Ответ

2 голосов
/ 07 марта 2012

Я немного заржавел с рельсами, так что это довольно общий ответ.

Я бы загрузил следующие n комментариев из маршрута / действия, которое отображает только ваш Раздел рендеринга комментариев как HTML

Просто представьте, что вы запрашиваете ресурсы у своего API и используете их для обновления страницы.

Pagination JS

/**
* jQuery 1.7+
* use .delegate() for older versions.
**/
$("#CommentPagin").on('click', 'a', function(e){
    // Get data from server - make sure url has params for per_page and page.
    $.get($(this).attr('href'), function(data){
        // refresh client with data
        $("#cc").append(data);
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...