ruby-on-rails – 从Active Record Array中删除Object

在Rails中,我有以下Active Record Collection:
@products = Product.all

我需要遍历此集合并从中删除一些对象而不从数据库删除它们.因此,使用

@products.each do |product|
    if CONDITION
        product.delete
    end
end

不起作用,因为这也将从数据库删除产品.有没有办法从这个集合中删除特定的产品而不从数据库删除它们?

@H_404_10@

解决方法

一个问题,如果你不想要所有记录,那么为什么甚至从数据库返回它们呢?为什么不使用where子句来过滤结果:

@products = Product.where(< CONDITIONS>)

其次,如果你坚持要返回所有结果然后过滤,请使用.reject块:

@products = Product.all.reject {| p | <条件> }

@H_404_10@ @H_404_10@

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...