如何从Activerecord查询结果集中删除项目?

nex*_*xar 30 activerecord ruby-on-rails

我从Rails查找查询中获取结果集.我想迭代该结果集并依赖于某些条件从该结果集中删除记录,然后再将其传递以进行进一步处理.附加条件是数据库中保存的数据的外部标准,因此我不能将它们包含在原始的"查找"查询中.

注意我不想从数据库中删除任何记录只是从结果集中删除它们.

请有人给我代码来做到这一点.

Fab*_*bio 31

使用拒绝,

Model.find_all_by_xxx().reject { |r| r.something? }
Run Code Online (Sandbox Code Playgroud)

  • 这不起作用,因为`find_by_xxx`返回单个记录.你想要`find_all_by_xxx`. (5认同)

fl0*_*00r 6

set = MyObject.find(...)
set = set.reject{|s| ... }
Run Code Online (Sandbox Code Playgroud)

要么

set = set.select{|s| ... }
Run Code Online (Sandbox Code Playgroud)

  • 当我这样做时,`set`似乎被转换成`array`? (2认同)