2013-08-10 3 views
0

J'ai un tableau appelé user_ids et je veux sélectionner les enregistrements dont les user_ids ne sont pas dans le tableau.where.not() ne fonctionne pas sur les tableaux

Voici ce que je:

MyModel.where.not(user_id: user_ids) 

mais je m'y suis Error wrong number of arguments (0 for 1). La même chose arrive quand j'utilise MyModel.where.not('user_id=?', user_ids). Je pensais que c'était peut-être parce que le tableau était vide, mais la même chose arrive avec des tableaux qui ne sont pas vides.

Est-ce que quelqu'un sait pourquoi cela arrive?

J'utilise Rails 4.

Répondre

0

Vous devriez essayer ceci:

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

eh oui j'ai essayé cela, mais savez-vous pourquoi where.not() ne fonctionne pas? – Lee7355512727

+0

Je n'ai pas beaucoup entendu parler de .where.not() mais je suppose: il ne peut pas prendre un tableau d'identifiants. cela peut fonctionner avec un identifiant unique comme l'opérateur '! ='. Essayez de passer un identifiant unique, au lieu de tableau – Pankhuri

Questions connexes