Kaminari 的 AJAX 翻页实现

Kaminari 是 rails 上一个很有名的分页管理扩展,使用极其简单。最近刚在项目中使用了它的 AJAX 分页的功能,记录一下实现的过程。

基本的安装和配置就不啰嗦了,按照官方的教程来进行就是啦,具体记录一下 AJAX 翻页实现的部分,以一个订单列表的页面作例子。

####View

app/views/orders/index.html.haml

.table-resonsive
  - if @orders.nil?
    暂时还没有订单记录
  - else
    %table#list-orders.table.table-vcenter
      %thead
        %tr
          %th.order-id 订单号
          %th.order-track 订单状态
          %th.order-actions 操作
      %tbody
        = render partial: 'list_order', collection: @orders, as: :order
#paginator
  = paginate @orders, remote: true

app/views/orders/_list_order.html.haml

%tr{ :id => "order-#{order.id}" }
  %td= order.id
  %td
    .status
  %td
    =link_to "更新状态", edit_cpanel_order_path(order), :remote => true

app/views/orders/index.js.erb

$("#list-orders tbody").html("<%= j( render partial: 'list_order', collection: @orders, as: :order ) %>")
$("#paginator").html("<%= j( paginate(@orders, :remote => true).to_s ) %>")

####Controller

app/controller/orders_controller.rb

def index
  @orders = Order.all.order_by(:_id => :desc ).page params[:page]
  @status = OrderStatus.enabled
end

这样很简单就可以实现了AJAX的翻页效果