【发布时间】:2018-06-06 10:30:28
【问题描述】:
如果你在 AR 集合上使用 select!,reject!,delete_if
@projects = Project.all(有 3 条状态列值为“失败”的记录)
@projects.reject!{|p| p.status=="failed"} (has 0 records now)
但是@projects.count => 仍然给出结果为 3
意味着如果我们尝试对仍在使用旧集合(3 条记录)的 @projects 进行任何查询。
有什么建议吗?为什么它使用旧集合,因为已经通过拒绝操作过滤了它。并且不希望它使用旧的 AR 集合。
使用 AR where,我们可以实现它,但在我的情况下,仅使用 where 无法实现我的结果,需要对 AR 集合进行一些操作,它应该只返回 AR 而不是数组。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 activerecord rails-activerecord