0

生徒の詳細をリストするタスクがあります。名前と都市に基づいて検索を実行したい。の場合cityId==0 and name=''、生徒の詳細をすべてリストしたいと思います。これどうやってするの?私はこれを間違った方法で行いました。コントローラーは次のとおりです。

    if(Student.where(params[:cityId])==0)
    studentcount = Student.count()
    @students = Student.limit(params[:jtPageSize]).offset(params[:jtStartIndex]).order(params[:jtSorting])
    @jtable = {'Result' => 'OK','Records' => @students.map(&:attributes), :TotalRecordCount => studentcount}
    else
    studentcount = Student.where("name LIKE ? AND city = ?", "%#{params[:name]}%", params[:cityId]).count()
    @students = Student.where("name LIKE ? AND city = ?", "%#{params[:name]}%", params[:cityId]).limit(params[:jtPageSize]).offset(params[:jtStartIndex]).order(params[:jtSorting])
    @jtable = {'Result' => 'OK','Records' => @students.map(&:attributes), :TotalRecordCount => studentcount}
4

2 に答える 2

1

条件は次のようになります。

 if( Student.where(:cityId => params[:cityId]).count == 0 )

あなたが持っているifステートメントは、ActiveRecord::Relation決して真にならない等しいかどうかaとIntegerをテストします

于 2012-12-07T09:43:18.533 に答える
0
if User.where(city_id: params[:cityId]).empty?
于 2012-12-07T10:14:35.730 に答える