Это лучший способ сделать «не в» в ActiveRecord 3.1? - PullRequest
1 голос
/ 03 июня 2011

Мне очень нравится возможность:

Product.where(:id => [40,41,42])

, который генерирует хороший where id in (40,41,42)

Однако я мог только понять, как сделать обратное, как:

Product.where("id not in (?)", [40,41,42])

Есть ли более чистый путь?

Спасибо.

Ответы [ 2 ]

1 голос
/ 03 июня 2011

вы можете сделать что-то вроде этого:

Product.all.delete_if{|x| [41,42,43].include? x.id }

==> Массив со всеми продуктами, кроме продуктов с заданными идентификаторами.

1 голос
/ 03 июня 2011

Нет, вот как ты это делаешь. Нет более короткого пути, по крайней мере, с ванильным ARel. В meta_where вы можете найти что-то, что могло бы сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...