我正在關注此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源的數據表。在視圖中放置分頁將無法與搜索,排序等數據表的功能一起使用。 –