2011-03-17 75 views
0

我需要創建一個Query來評估父對象是否至少收到兩個喜歡。如果他有,然後將其包含在隨機查詢中。Active Record「where」從父資源查詢

我試過這樣的東西,但沒有奏效。

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

'users.id = attachments.id'這很奇怪! – fl00r 2011-03-17 21:43:09

+0

應該是attachments.user_id嗎? – jenjenut233 2011-03-17 21:47:38

+0

對,剛更新它。 – Martin 2011-03-17 22:16:46

回答

2

這是否適合您?我設想你的用戶是父母,附件表有一個user_id,但我不完全確定你的問題的措辭。

這樣做的主要技巧是它使用子選擇來收集在IN子句中使用的ID。

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

MySQL?

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