微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将不同的查询与Active Record / Arel结合

如何解决将不同的查询与Active Record / Arel结合

我有一个有效的解决方案,可以组合活动记录过滤器,但我想知道是否可以仅使用一个查询来提高性能。我尝试使用arel_tables,但尝试使用该方法组合多个查询却没有成功。

此刻我是这样的:

not_accepted_ids = User.where.not(status: ['accepted','rejected']).pluck(:id)

accepted_ids = User.where(status: 'accepted').order('updated_at DESC').limit(25).pluck(:id)

rejected_ids = User.where(status: 'rejected').order('updated_at DESC').limit(10).pluck(:id)

@users = User.where(id: not_accepted_ids + accepted_ids + rejected_ids)

在此先感谢您的帮助

解决方法

由于添加了限制,因此无法合并where语句。我从您的查询中得到的是,您正在尝试加载10个接受的用户,25个被拒绝的用户以及所有其他用户。您可以加载所有用户,然后过滤它们。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。