0
我有3種型號:Rails的嵌套/多級AREL查詢
Tiersets
has_many Tiers
Tiers
belongs_to Tierset
has_and_belongs_to_many Features
Feature
has_and_belongs_to_many Tiers
在Feature
,我有一個名爲Feature_Code
一個String
列包含以下字符串之一: 「F_VIZ
」, 「F_DATA
」,「 F_SCORE
「。
我試圖構造查詢發現,已知Tierset
內,一切的一切Tier
對象爲Tierset
的Feature
對象的代碼F_VIZ
。
我已經嘗試了一堆組合:包括AREL查詢,但我很明顯混淆了表如何加入。任何幫助深表感謝。
謝謝,這工作。請注意,我不得不稍微修改它,因爲我沒有直接搜索'F_VIZ',而是對於代碼名稱中有'VIZ'的記錄(也是尋找唯一記錄,因此在末尾添加了.uniq):' Feature.where(「code like?」,「%VIZ%」)。joins(:tiers).where(「tiers.tierset_id」=> 1).uniq' – tarunsachdeva 2013-03-11 23:18:26
雖然有一件奇怪的事情發生。在上面的查詢中,'.count'實際上也返回了所有非唯一條目的計數,而不僅僅是唯一的。不知道這是因爲我的db(Postgres)以不同的方式處理連接。它不是任務關鍵,不會影響我的應用程序......但這很奇怪。 – tarunsachdeva 2013-03-11 23:22:28
您應該使用'.length'而不是'.count'。前者將在Ruby中進行評估,而後者將在數據庫中評估爲COUNT(*)。 – bdon 2013-03-12 03:18:42