Ruby on rails 在Rails中,是否可以执行以下操作:where()列不在数组中?
在Rails中,如何编写ActiveRecord,“其中此列的值不等于此字符串数组中的任何值” 我试图通过将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? 编辑编辑编辑 顺便说一句,我最初遇到
.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
值时,它就起作用了——正如上面问题的编辑中所述。