过滤对象数组所以我执行查询的数据库,我有对象的完整阵列:的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