jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – Rails中的服务器端数据表大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的Rails 4应用程序中使用DataTables进行服务器端处理.我有我的ajax源从DB返回准确的数据记录. Paginatation在html端工作,即第1页显示800个条目中的1-10个,第2页显示800个条目中的11-20个,依此类推.但是,表中的实际记录是相同的10个结果.我不知道是否只是为每个页面重新绘制相同的10条记录,因为我错过了什么或什么.

有谁知道为什么我为每个页面返回相同的10条记录?任何见解都非常感谢.提前致谢.

的Gemfile:

gem 'will_paginate'
gem 'jquery-datatables-rails',github: 'rweng/jquery-datatables-rails'

控制器:

def index
  respond_to do |format|
    format.html
    format.json { render json: HomeownersDatatable.new(view_context) }
  end
end

HomeownersDatatable:

class HomeownersDatatable
delegate :params,:link_to,to: :@view

def initialize(view)
    @view = view
end

def as_json(options = {})
    {
        sEcho: params[:sEcho].to_i,iTotalRecords: Homeowner.count,iTotalDisplayRecords: homeowners.total_entries,aaData: data,}
end

private
def data
    homeowners.map do |homeowner|
        [
            link_to(homeowner.name,@view.edit_admin_homeowner_path(homeowner.id)),# (homeowner.name),(homeowner.id),(homeowner.email),(homeowner.address),(homeowner.zip_code),]
    end
end

def homeowners
    @homeowners ||= fetch_homeowners
end

def fetch_homeowners
    homeowners = Homeowner.order("#{sort_column} " "#{sort_direction}")
    homeowners = homeowners.page(page).per_page(per_page)
    if params[:sSearch].present?
        homeowners = homeowners.where("name like :search or email like :search",search: "%#{params[:sSearch]}%")
    end
    homeowners
end

def page
    params[:iDisplayStart].to_i/per_page + 1
end

def per_page
    params[:iDisplayLength].to_i > 0 ? params[:iDisplayLength].to_i : 20
end

def sort_column
    columns = %w[id email]
    columns[params[:iSortCol_0].to_i]
end

def sort_direction
    params[:sSortDir_0] == "DESC" ? "DESC" : "ASC"
end

结束

JS to Initailize表:

$(document).ready(function() {
  $('#homeowners_admin_table').DataTable({
    "pagingType": "full_numbers","stateSave": true,"processing": true,"serverSide": true,"ajax": $('#homeowners_admin_table').data('source'),});
});

解决方法

我有同样的问题.我通过改变来弄清楚:

$('#table').DataTable({{...})

对于:

$('#table').dataTable({{...}).

它只是关于数据表版本.

大佬总结

以上是大佬教程为你收集整理的jquery – Rails中的服务器端数据表全部内容,希望文章能够帮你解决jquery – Rails中的服务器端数据表所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: