我正在关注此railscast:http://railscasts.com/episodes/340-datatables。使用数据表分页
我想让我的数据表在每10个项目分页。我的代码如下所示:
def index
@search = Product.search do |query|
query.fulltext params[:sSearch]
query.with(:store_id, @store.id)
query.paginate(:page => page, :per_page => per_page)
end
@products = @search.results
@headers = @products.map(&:data).flat_map(&:keys).uniq
@product_data = @products.map{ |product| product[ :data ].values }
respond_to do |format|
format.html
format.json do
render :json=> {
"sEcho" => params[:sEcho].to_i,
"iTotalRecords" => @products.count,
"iTotalDisplayRecords"=> @products.count,
"aaData" => @product_data.as_json
}
end
end
end
private
def page
params[:iDisplayStart].to_i/per_page + 1
end
def per_page
params[:iDisplayLength].to_i > 0 ? params[:iDisplayLength].to_i : 10
end
我已经安装了will_paginate gem是,但数据表似乎并没有认识到,应该分页,它显示了10个记录并禁用分页按钮。
怎么回事?
感谢您的答复,但这只是让will_paginate的HTML分页的工作,但我试图让jQuery的数据表插件有分页。 –
嗯,这是事情 - 'JQuery'数据表从Rails填充。这意味着如果您在SQL查询中使用'will_paginate',则只会将该页面的数据传递给您的数据表。为了让分页工作全部完成,你必须使用带有ajax的分页链接,返回新的表格数据(按照Railscast的说法)(http://railscasts.com/episodes/174-pagination-with -ajax)) –
作者在他的示例中正在使用带有ajax源的数据表。在视图中放置分页将无法与搜索,排序等数据表的功能一起使用。 –