Ich mache eine Website, wo nach der Anmeldung der Benutzer wählt, was ihre Interessen sind. So sieht der Benutzer nur die Beiträge, die für ihn relevant sind. Die Beziehung zwischen dem Benutzer und den Interessen (in meinem Fall Tags) ist eine Viele-zu-Viele-Beziehung durch eine Join-Tabelle. Außerdem kann ein Benutzer einen Beitrag erstellen und dem Beitrag Tags hinzufügen. Und ein Tag kann viele Beiträge haben. Die Beziehung zwischen Tags und Posts ist also eine Viele-zu-Viele-Beziehung durch eine Join-Tabelle. In der users
Tabelle habe ich eine tag_ids
Spalte, die eine Sammlung speichert. Gleiches mit der posts
Tabelle, ich habe eine tag_ids
Spalte, die eine Sammlung speichert.Erhalten Sie alle Beiträge, die mit irgendeinem Interesse eines Benutzers markiert wurden
In meinem User-Modell habe ich
has_many :user_tags
has_many :tags,:through => :user_tags
In meinem Beitrag Modell Ich habe
has_many :post_tags
has_many :tags,:through => :post_tags
Wenn ich so etwas wie current_user.tag_ids
habe ich so etwas wie [2, 3]
bekommen würde. Und wenn ich so etwas wie Post.first.tag_ids
mache, bekomme ich etwas wie . Hoffe, du bekommst das allgemeine Bild. Also, wie extrahiere ich alle Beiträge, wo eine der tag_ids für den aktuellen Benutzer in der Posts tag_ids Spalte mit aktiven Datensatz vorhanden ist, wenn es möglich ist. Danke
Nur um zu klären, fragen Sie, wie Sie die allgemeinen tag_ids zwischen den current_user.tag_ids und post.tag_ids finden? – ZubatMan
Yeah dann alle Beiträge anzeigen, die diese tag_id mit ihnen haben –