活动记录来自父资源的“where”查询

时间:2011-03-17 21:26:45

标签: ruby-on-rails ruby ruby-on-rails-3

我需要创建一个Query,用于评估父对象是否至少收到两个喜欢。如果有,则将其包含在随机查询中。

我尝试过类似的东西,但它没有用。

@attachments = Attachment.joins('LEFT OUTER JOIN users ON users.id = attachments.user_id').where("received_likes_count > ?",2).order("random()")

2 个答案:

答案 0 :(得分:2)

这对你有用吗?我设想你的用户是父,而附件表有一个user_id,但我不完全确定你的问题的措辞。

这方面的主要技巧是使用子选择来收集id以在IN子句中使用。

@attachments = Attachment.where(
  'user_id IN (
     SELECT id FROM users WHERE received_likes_count > ?
  )', 2
).order('random()')

答案 1 :(得分:1)

的MySQL?

@attachments = Attachment.joins(:users).where("received_likes_count > ?",2).order("rand()")