Wenn meine Benutzer die Seite „/posted“ besuchen (z. B. https://meta.discourse.org/posted ), werden dort keine Themen angezeigt, bei denen Beiträge von einer früheren Website importiert wurden. Dies geschieht, obwohl ihre Beiträge auf der Seite „/u/xxx/activity/topics“ angezeigt werden.
Für mein eigenes Konto scheint „/posted“ jedoch auch mit importierten Inhalten zu funktionieren. Ich habe mein importiertes Konto jedoch mit dem primären Konto zusammengeführt, mit dem die Discourse-Instanz erstellt wurde. Könnte das der Grund sein?
Ist das ein Fehler? Wenn mir jemand helfen kann, dies zu verstehen oder mir zumindest den Backend-Code im Discourse-Repository für den „/posted“-Filter zeigen kann, kann ich versuchen, das Problem selbst zu lösen. Da ich relativ neu in Ruby und Rails bin, ist die Dateistruktur des Discourse-GitHubs noch nicht vollständig verständlich. Ich danke Ihnen!
Das ist meine Vermutung. Wenn die Beiträge von einem anderen Benutzer als dem angemeldeten Benutzer erstellt wurden, ist dies das erwartete Verhalten, oder?
Wenn die importierten Konten nicht mit den Konten übereinstimmen, die die Leute verwenden, müssen Sie das beheben.
Auf meinem Konto habe ich mein anfängliches Discourse-Admin-Konto mit meinem importierten Konto vom älteren Forum zusammengeführt. Alle Themen, in denen ich jemals gepostet habe, werden korrekt unter /posted angezeigt
Für alle anderen wurde das Konto, das sie verwenden, nur von der alten Website importiert. Für sie werden nur Themen, in denen sie nach dem Import gepostet haben, unter /posted angezeigt. Ich habe dies mit einem Test-Alt-Konto bestätigt, das ich habe
Ich gehe davon aus, dass importierte Beiträge immer noch wichtig sein sollten, wenn es darum geht, was unter /posted angezeigt wird, sodass das Verhalten für mein Konto korrekt ist, aber nicht für alle anderen Benutzer. Ich gehe davon aus, dass der Zusammenführungsschritt der Grund dafür ist, da er alle meine alten Beiträge einem neuen Konto zuweist, nachdem sie importiert wurden
Als Nächstes würde ich bestätigen, dass die Beiträge, die nicht unter /posted angezeigt werden, tatsächlich dem Benutzer gehören, der danach sucht. So etwas wie
u = User.find_by_username('whateverUser')
posts = Post.where(user_id: u.id)
Und sehen Sie, ob diese Beiträge diejenigen enthalten, die Ihrer Meinung nach angezeigt werden sollten oder nicht.
Umgekehrt könnten Sie
p = Post.find(post_id_you_want)
und sehen Sie, welcher Benutzer diesen Beitrag besitzt.
Importierte Themen erscheinen auf der Seite /my/activity/topics und nicht auf der Seite /posted für andere Benutzer als mich selbst.
Importierte Beiträge erscheinen auch unter /my/activity/replies, aber die entsprechenden Themen erscheinen nicht auf der Seite /posted für andere Benutzer als mich selbst.
Ich habe dies auch anhand eines Beispielthemas bestätigt. Die user_id auf /t/xxx.json stimmt mit der Benutzer-id auf /u/yyy.json überein, aber das Thema xxx erscheint nicht auf /posted für Benutzer yyy.
Ich kann auch versuchen, den von Ihnen bereitgestellten Code auszuführen, aber es scheint keinen Grund zu geben, dies als Eigentumsproblem zu betrachten, soweit ich das beurteilen kann.
FWIW gab es vor einiger Zeit ein ähnliches Problem beim Ändern des Beitragsbesitzers. Ich frage mich, ob das zusätzliche Hinweise für Ihre Situation liefern könnte?
Es scheint ein ähnliches Problem zu geben, wie Sie sagen (wenn auch nicht ganz dasselbe). Vielleicht kann ich mich in den Code einarbeiten, der in diesem Commit aktualisiert wurde.