Ruby on rails 在Rails中,是否可以执行以下操作:where()列不在数组中?

Ruby on rails 在Rails中,是否可以执行以下操作:where()列不在数组中?,ruby-on-rails,activerecord,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? 编辑编辑编辑 顺便说一句,我最初遇到

在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
s中的
in
。所以问题很好地解释了这一点。

这个呢

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

谢谢,塞吉奥。当我从我的
some_数组中删除
nil
值时,它就起作用了——正如上面问题的编辑中所述。