Rails .reject将类型ActiveRecord :: Relation转换为类型数组

我想在Rails中使用.reject方法从搜索中删除current_user 。 我这样做如下:

 @users = User.where{(firstname =~ my{"%#{params[:term]}%"}) | (lastname =~ my{"%#{params[:term]}%"}) | (email =~ my{"%#{params[:term]}%"})}.select("id,firstname, lastname") @users = @users.reject{|u| User.find(u.id) == current_user} 

在第一行之后,如果我调用@users.class ,我得到ActiveRecord::Relation ,但是在使用.reject方法之后,如果我调用@users.class我会得到Array

使用.reject方法后如何维护ActiveRecord::Relation ? 我需要一个ActiveRecord::Relation才能在我的下一行中使用.paginate方法,即:

 @user = @users.paginate(:page => params[:page], :per_page => params[:page_limit]) 

您应该始终使用ActiveRecord api查询方法来获取ActiveRecord::Relationreject不是)。 例如,组合where

 @users = User.where(your_first_conditions). where("id != :id", id: current_user.id). select([:id, :firstname, :lastname])