我有两个嵌套对象:RecruitmentUser has_many RecruitmentUserStatusLog。 RecruitmentUserStatusLog有一个称为状态的属性。我想选择具有状态='处理'的RecruitmentUserStatusLog和状态='已回答'的RecruitmentUserStatusLog的RecruitmentUsers。它不能只是其中之一。我尝试使用ActiveRecord的一些疑问,但我不知道这是否是最有效的方式。我试过这样:最佳查询选择嵌套对象
RecruitmentUserStatusLog.where(status: ['processed', 'answered']).pluck(:recruitment_user_id).group_by {|id| id}.values.select{|duplicate_id| duplicate_id.size > 1}
的选择部分只是为了获得重复的id的发生(具有“已处理”状态的recruitment_user_id和具有状态“已回答”的recruitment_user_id)。
但我认为这是'很多工作,也许有一个更优雅的方式来做这个查询..我已经搜查,但没有找到它..任何人都可以帮助我吗?
与StatusLogs开始出来的是什么我也做什么,你尝试过使用'.joins(:r_users)',而不是你去哪里'.pluck'? –
是的,要使用连接我需要做相反的.. RecruitmentUser.joins(:日志)..但我不能建立查询,以带来我想要的结果.. –
不是我的意思。如果你做了RecruitmentUserStatusLog.where(status:['processed','回答'])。joins(:recruitment_users)'等等,会发生什么? –