В Rails можно ли это сделать: где () столбец отсутствует в массиве? - PullRequest
0 голосов
/ 16 марта 2012

Как в Rails вы пишете ActiveRecord, "где значение этого столбца не равно значению в этом массиве строк"?

Я пытаюсь переместить некоторую рубиновую логику в SQL, переписав метод .reject в .where.

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

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

РЕДАКТИРОВАТЬ РЕДАКТИРОВАТЬ РЕДАКТИРОВАТЬ

Кстати, у меня изначально были проблемы, потому что я не понимал, как SQL обрабатывает NULL s в IN. Этот ТАК вопрос хорошо объясняет.

1 Ответ

2 голосов
/ 16 марта 2012

Как насчет этого?

SomeModel.where('sm not in :arr', {arr: some_array})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...