Ruby on Rails 3 - 这是在 ActiveRecord 3.1 中进行"not in"的最佳方式吗?



我真的很喜欢能够:

Product.where(:id => [40,41,42])

它生成了一个很好的where id in (40,41,42)

然而,我只能想出如何做相反的事情:

Product.where("id not in (?)", [40,41,42])

有更干净的方法吗?

谢谢。

不,你就是这么做的。没有比这更短的方法了,至少用香草ARel。不过,你可能会在meta_where中找到一些可以做到这一点的东西。

您可以这样做:

Product.all.delete_if{|x| [41,42,43].include? x.id }

===>包含所有产品的数组,不包括具有给定id的产品。

最新更新