1
我想在Rails中使用.reject
方法从搜索中删除current_user
。我这样做如下:Rails .reject打开类型ActiveRecord ::与类型数组的关系
@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])
谢谢,效果很好!快速任务 - 为什么使用最后一个'select([:id,:firstname,:lastname])'语句?在我看来,它应该只与第二个'where(“id!=:id”,id:current_user.id)'语句一起工作。 –
是的,我添加了它,因为你在你的问题中有这样的陈述,但它没有它。 – markets
啊,是的,当然(累了让我忽略了这个事实!)感谢您的帮助! –