2016-03-20 4 views
0

Ich bin auf dieses Problem für eine Weile fest.'NICHT IN' oder .not() mit einem Array aus dem Modell

Ich habe einen Modellartikel mit einem Array gesehenby ID von Benutzern enthalten. Ich versuche, diese Artikel alle nicht von einem bestimmten Benutzer

so Artikel zu sehen bekomme ich bekam:

add_column :articles, :seenby, :string, array:true 

für Beispiel der erste Artikel wurde von Benutzer [ „1“, „2“ gesehen worden , „3“]

jetzt habe ich Benutzer 4 und ich möchte von ihm alle Artikel noch nicht gesehen finden So würde ich

Article.where('4 NOT IN (?)', :seenby) 

eine Abfrage wie haben aber das nicht funktioniert habe ich versucht, viele Dinge (mit .not auch), aber das Beispiel, das die ganze Zeit kommen, ist so etwas wie das:

something.where('4 NOT IN (?)', ['some', 'value']) 

oder

something.not(field:value) 

Hier muss ich die seenby des Artikels.

Thx viel, wenn Sie helfen können :)

+1

Welche Art von Datenbank verwenden können, verwenden Sie? Nicht jeder Datenbanktyp unterstützt Arrays. Es könnte besser sein, eine Join-Tabelle 'Seen' zu haben, die zu' Article' und 'User' gehört. – SteveTurczyn

+0

hallo, nein mein Array funktioniert einwandfrei, ich benutze postgre. Ja, ich muss vielleicht eine neue Tabelle erstellen, aber das wollte ich vermeiden. – hadesMM

Antwort

Verwandte Themen