Rails有很多活动记录查询

时间:2017-09-07 08:05:11

标签: ruby-on-rails has-many active-record-query

用户有很多评论和评论属于用户。注释表的状态列为布尔类型。

现在我想让最后评论状态为真的用户。

如何在ActiveRecord查询中完成此操作?

3 个答案:

答案 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。

相关问题