在Rails中,是否可以这样做:where()列不在数组中?

时间:2012-03-15 22:55:18

标签: ruby-on-rails activerecord

在Rails中,你如何编写ActiveRecord,“这个列的值不等于这个字符串数组中的任何值”?

我试图通过将.reject方法重写为.where来将一些ruby逻辑移动到SQL中。

# old
SomeModel.all.reject{ |sm| some_array.include? sm.x } # works, but is inefficient

# new
SomeModel.where(__________) # what goes here?

编辑编辑

顺便说一下,我最初遇到问题,因为我不理解SQL如何处理NULL中的INThis所以问题很好地解释了。

1 个答案:

答案 0 :(得分:2)

这个怎么样?

SomeModel.where('sm not in :arr', {arr: some_array})