will_paginate через ajax не работает - PullRequest
1 голос
/ 14 марта 2012

Я использую will_paginate 3.0.pre2 для пагинации в рельсах 3

Простая нумерация страниц без ajax работает нормально, но когда я пытаюсь сделать ссылки доступными, они не работают. Когда я нажимаю на номера страниц, ничего не происходит.

У меня есть статья и модель комментария. Модель комментария имеет полиморфную связь со статьей и форумом Для комментариев я использую нумерацию страниц.


Контроллер статей - где я добавил требуемый код нумерации страниц:

def show
  @article = Article.find(params[:id])
  @comments = @article.comments.paginate(:per_page => 5, :page => params[:page])
  @commentid = @article.id
  @commenttype = @article.class
  respond_to do |format|
    format.html # index.html.erb
    format.js
  end
end

Комментарии Контроллер:

def index
  @comments = Comment.all..paginate(:per_page => 5, :page => params[:page])
  respond_to do |format|
    format.html # index.html.erb
    format.js
  end
end


def show
  @comment = Comment.find(params[:id])
end

application.js:

$("#comments_pagination .pagination a").live("click", function() {
  $.get("/articles/?"+this.href.split("?")[1], null, null, "script");
  return false
});

comments / index.html.haml:

%hr
%h2 Say something!
= form_for([@commentable,Comment.new], :remote => true) do |f|
  = f.label :commentcontent, "Comment here:"
  = f.text_field :commentcontent
  = f.hidden_field :user_id, :value => @current_user.id
  = f.hidden_field :commentable_id, :value=> @commentid
  = f.hidden_field :commentable_type, :value=> @commenttype
  = f.submit "Add comment"

#addcomment
= render :template => 'comments/_pagelink'

_pagelink.html.haml:

#comments_pagination
= will_paginate(@comments,:renderer => RemoteLinkRenderer)
%h1 All comments
#comments
= render :partial=>@comments,:locals=>{:list=>true}

remote_link_renderer:

class RemoteLinkRenderer < WillPaginate::ViewHelpers::LinkRenderer
    def link(text, target, attributes = {})
    attributes["data-remote"]   = true
    super
  end
end

index.js.erb:

$("#addcomment").html("<%= escape_javascript(render :template => 'comments/_pagelink') %>");
...