過濾對象數組所以我執行查詢的數據庫,我有對象的完整陣列:的Rails根據屬性值
@attachments = Job.find(1).attachments
現在我已經有了對象,我不想執行的數組另一個數據庫查詢,但我想過濾基礎上,Attachment
對象的file_type
陣列,這樣我可以有attachments
一個列表,文件類型爲'logo'
,然後的attachments
另一個列表,文件類型爲'image'
東西像這樣:
@logos = @attachments.where("file_type = ?", 'logo')
@images = @attachments.where("file_type = ?", 'image')
但在內存中而不是數據庫查詢。
乾杯
由於@ Vik的解決方案非常理想,我只是在二進制情況下添加這些內容,你可以使用'分區'功能讓事情變得更加美好。 http://ruby-doc.org/core-1.9.3/Enumerable.html#method-i-partition – Vlad 2016-06-20 21:04:15
感謝@Vlad,這很酷,但它只支持我們只需要從對象收集兩件東西。 – Vik 2016-08-01 07:52:08
是的,這就是爲什麼我說「二元」:)。在這個問題上,顯然有一個標誌或圖像的選擇,所以我加了這個完整性。 – Vlad 2016-08-01 19:04:41