[英]Querying a has_many association's count in Rails 3
我遍歷了大量的StackOverflow文章,試圖解決一個特別棘手的Rails 3連接查詢,但無濟於事-所以我在問一個新問題!
我有一個名為“ User”的模型,它通過多態關聯具有has_many“ Checks”(在Check上的實際列是“ target_type”和“ target_id”)。 Check有一個名為“ type”的字符串列,它表示進行檢查的原因。 像這樣:
-----------------------------------------------------
id | target_type | target_id | type |
-----------------------------------------------------
1 User 1 type_1
2 User 2 type_2
我想查找所有沒有與設置類型相關聯的支票的用戶-我認為這是聯接和計數。
因此,例如,我希望能夠進行查詢以查找所有沒有“ type_1”檢查的用戶,並且該查詢應返回ID為#2的用戶。
我將如何去做呢?
(我一直在查看有關計數和分組的所有內容(例如, Rails has_many關聯計數子行 ),但似乎沒有什么完全匹配。)
謝謝!
您可以嘗試:
class Merchant < ActiveRecord::Base
...
def self.non_fraudulent
includes(:fraud_checks).group("#{self.table_name}.id").having("SUM(CASE WHEN fraud_checks.type = 'fraudulent_ip' THEN 1 ELSE 0 END) = 0")
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.