0

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' を追加します。

何か案が?

4

1 に答える 1