在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
中的IN
。 This所以问题很好地解释了。
答案 0 :(得分:2)
这个怎么样?
SomeModel.where('sm not in :arr', {arr: some_array})