jqGrid と will_paginate を使用してテーブルを作成します。これがコントローラーの私のコードです
def index
index_columns ||= [:pid,:name,:gender,:birthday,:school]
current_page = params[:page] ? params[:page].to_i : 1
rows_per_page = params[:rows] ? params[:rows].to_i : 10
conditions={:page => current_page, :per_page => rows_per_page}
conditions[:order] = params["sidx"] + " " + params["sord"] unless (params[:sidx].blank? || params[:sord].blank?)
if params[:_search] == "true"
conditions[:conditions]=filter_by_conditions(index_columns)
end
@people = Person.paginate(conditions)
total_entries=@people.total_entries
respond_with(@people) do |format|
format.html
format.json { render :json => @people.to_jqgrid_json(index_columns, current_page, rows_per_page, total_entries)}
end
end
これらのコードを使用すると、jqGrid でデータを正しく並べ替えて検索できます。ただし、次のように変更した後、
@temp = Person.limit(0).all
KlassesPeople.where(:klass_id => 1).each do |stu|
@temp.concat( Person.where(:id => stu.person_id) )
end
@people = @temp.paginate(conditions)
total_entries=@people.total_entries
データは引き続き jqGrid に表示できますが、並べ替えと検索はできません。コントローラーに require 'will_paginate/array' を追加します。
何か案が?