用户有很多评论和评论属于用户。注释表的状态列为布尔类型。
现在我想让最后评论状态为真的用户。
如何在ActiveRecord查询中完成此操作?
答案 0 :(得分:0)
var transform = (m => array => (array.forEach(a => m.set(...a)), [...m]))(new Map);
console.log(transform([['a', 1], ['b', 2]]));
console.log(transform([['c', 3], ['d', 4]]));
然后
.as-console-wrapper { max-height: 100% !important; top: 0; }
否则使用联接,将为每个结果提供User和Comment的所有字段。
@user_ids = Comment.where(status: true).pluck(:user_id)
答案 1 :(得分:0)
users = []
User.all.each do |user|
users << user if user.comments && user.comments.last.status
end
users # list of all user whose last comment status = true
users
对象包括最后评论状态为true的所有用户。
答案 2 :(得分:0)
您可以尝试此查询(让用户最后一条评论的状态为true)
{{1}}
这实际上需要一个子查询,因此我们的想法是首先获取所有用户的最后评论并过滤掉状态为true,以便在加入的帮助下找出用户ID。