我試圖抓住的一個工作流程工具,我正在做活動任務列表,結構類似這樣的數據:返回嵌套結果的查詢使用Rails的ActiveRecord
- 用戶
- 的has_many項目
- 的has_many子項目
- 的has_many任務
- 的has_manyŤ imeLogs
- 的has_many任務
- 的has_many子項目
- 的has_many項目
活動的任務被定義爲與不具有 '已完成' 時間戳TimeLog任何任務。
我試圖讓主頁面顯示這個完整的結構,但只顯示在某個級別有活動任務的父結構。任何在其下沒有活動任務的用戶/項目/子項目都不應該被查詢返回。
到目前爲止,我已經嘗試:在所有四個表,產生重複的行
- 聯接
- 一個WHERE EXISTS語句,該語句只返回相關的用戶,但不維護WHERE子句當我試圖訪問它的孩子
有沒有一種方法來實現這一點,而無需手動剔除Ruby中的數據?
您可以在連接查詢的末尾添加'.uniq'。然後ActiveRecord將查詢沒有重複。 – 2014-10-28 14:00:21
這適用於頂級用戶,但是當我抓取用戶的子項目時,它只抓取所有項目。通過子節點執行'where'子句似乎很麻煩,所以我正在尋找一種方法來一次抓住它,也許將ActiveRecord查詢轉換爲嵌套的Hash? – 2014-10-28 14:26:37