Jas*_*oks 3 activerecord ruby-on-rails
我想.reject在Rails中使用该方法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}
Run Code Online (Sandbox Code Playgroud)
在第一行之后,如果我打电话@users.class,我会得到ActiveRecord::Relation,但在使用该.reject方法之后,如果我打电话给@users.class我Array.
如何ActiveRecord::Relation在使用该.reject方法后维护?我需要一个ActiveRecord::Relation,以便.paginate在我的下一行中使用该方法,即:
@user = @users.paginate(:page => params[:page], :per_page => params[:page_limit])
Run Code Online (Sandbox Code Playgroud)
mar*_*ets 14
您应该使用始终ActiveRecord api查询方法来获取ActiveRecord::Relation(reject不是).例如,组合where:
@users = User.where(your_first_conditions).
where("id != :id", id: current_user.id).
select([:id, :firstname, :lastname])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7972 次 |
| 最近记录: |