簡體   English   中英

在Rails 3中查詢has_many關聯的計數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM