2010-07-10 10 views
3

J'essaie de trouver tous les utilisateurs, sauf pour les utilisateurs ayant un identifiant qui est membre d'un tableau exclude_idsrequête pour tous les utilisateurs, sauf pour les utilisateurs ayant un ID dans cette collection

Voici ce que j'ai:

User.where("id != ?", exclude_ids) 

Cela ne fonctionne que si exclude_ids n'a qu'un seul élément. Si elle a plus d'un élément, je reçois

cette erreur:

ActiveRecord::StatementInvalid: SQLite3::SQLException: near ",": syntax error: SELECT  "users".* FROM  "users" WHERE  (id != 1,2) 

Je vous remercie de toute aide.

+0

Pourquoi ne pas vérifier si '" id! = ? ", rien" ou quelque chose du genre? – theIV

Répondre

0

je ne suis pas confirmer, mais vous pouvez essayer cette

User.where ("id pas # {} exclude_ids?")

2
User.where('id NOT IN (:ids)', ids: exclude_ids) # SQL does the filtering 

ou

User.select { |u| exclude_ids.exclude? u.id } # Ruby does the filtering 
Questions connexes