2
我有Bike
和Category
型號。自行車has_many類別通過BikeFilter
模型。使用關聯的過濾器邏輯
問題是,從搜索我得到讓我們說5個不同的類別,我只需要找到這些自行車,其中所有5個這些類別記錄在BikeFilter
表。
如果我在mysql中執行GROUP BY,它還會選擇記錄,其中bike_filters
中只有1個或幾個類別的記錄。並且需要誰擁有他們全部。
Bike.rb
has_many :bike_filters
has_many :categories, :through => :bike_filters
BikeFilter.rb
belongs_to :category
belongs_to :bike
但是,如果'貓'包含例如5個類別,這不僅交付那些**全部5 **類別的自行車。您還可以獲得5類自行車,其中只有一類屬於「貓」。 – tillmo
@tillmo - 我不這麼認爲 - 只過濾cats中的category id行(where子句)過濾所有的行,所以剩下的只剩下行是'cats'中的category,所以其他類不會被計算在內在'count(*)'上,因此不予考慮。 – Dani
你是對的。但是,'> ='與'='沒有區別。在這兩種情況下,都會返回包含指定類別的所有自行車。這是因爲'where(categories:{id:cats})'已經限制計數到指定的類別。 – tillmo