0

到目前为止,我已经按照一些教程没有运气。我正在使用 ajax_pagination。当我单击第二页的链接时,服务器日志显示:Started GET "/?page=2& =1367953277288" for 127.0.0.1 at 2013-05-07 14:05:49-0500
Processing by AddressesController# index as JS 参数:{"page"=>"2", "
"=>"1367953277288"} 地址加载 (0.9ms) SELECT "addresses".* FROM "addresses" LIMIT 5 OFFSET 5 渲染地址/_addresses.html。 erb (6.7ms) 渲染地址/index.html.erb (8.4ms) 在 10ms 内完成 200 OK (Views: 9.0ms | ActiveRecord: 0.9ms)

所以看起来请求是正确的,但是页面上没有任何变化。这是我的部分 _addresses 代码:

<%= ajax_loadzone do %>
<% @addresses.each do |address| %>
blah blah
<%end%>

<%= ajax_links :section_id => 'page' do %>
<%= will_paginate @addresses %>
<% end %>

控制器:ajax_respond 格式,:section_id => "page", :render => "addresses"

索引视图:<%= ajax_section :id => 'page', :render => 'addresses' %>

这不是我的全部代码,而是相关的部分。

4

1 回答 1

0

请CMIIW,我通过在重新渲染我们要渲染的部分时设置jQuery分页找到了我的问题的解决方案。

application.js

jQuery.ajaxSetup({
  'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
})

$.fn.ajaxPagination = function() {
  this.on("click", function () {
    $.get(this.href, null, null, "script");
    return false;
  });
}

$(document).ready(function() {
  $( ".pagination a" ).ajaxPagination();
})

controller

def index
  @addresses = Address.pagination(params[:page])

  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @order_requests }
    format.js
  end
end

model

def self.pagination(page)
  paginate(:per_page => 5, :page => page)
end

让我们说index.js.erb

$('#page').html("<%= escape_javascript(render('addresses')) %>");
$(".pagination a").ajaxPagination();

等到此为止,如有错误请指正,谢谢。

于 2013-07-19T05:54:36.067 回答