2013-08-10 7 views
0

У меня есть массив, называемый user_ids, и я хочу выбрать записи, чьи user_id не находятся в массиве.where.not() не работает с массивами

Вот что я использовал:

MyModel.where.not(user_id: user_ids) 

Но я Error wrong number of arguments (0 for 1).

То же самое происходит, когда я использовал MyModel.where.not('user_id=?', user_ids). Я думал, что это было, потому что массив был пуст, но то же самое происходит с массивами, которые не пусты.

Кто-нибудь знает, почему это происходит?

Я использую Rails 4.

ответ

0

Вы должны попробовать это:

MyModel.where('user_id not in (?)', user_ids) 
+0

Yep Я попробовал это, но вы знаете, почему where.not() не работает? – Lee7355512727

+0

Я ничего не слышал о .where.not(), но я думаю: не может принимать массив идентификаторов. он может работать с одним id, как оператор!! =. попробуйте передать один id, а не массив – Pankhuri

Смежные вопросы