gpt4 book ai didi

ruby-on-rails - Rails .reject 将 ActiveRecord::Relation 类型转换为类型数组

转载 作者:行者123 更新时间:2023-12-03 15:45:54 25 4
gpt4 key购买 nike

我想使用 .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}

在第一行之后,如果我调用 @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])

最佳答案

您应该始终使用 ActiveRecord api query methods获取 ActiveRecord::Relation ( reject 不是)。例如,组合 where :

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

关于ruby-on-rails - Rails .reject 将 ActiveRecord::Relation 类型转换为类型数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22029598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com