Ich baue einen Gruppenblog auf, der von der Gemeinschaft moderiert wird. Wenn ein Benutzer den moderate
Seite wird ihm ein zufälliger Beitrag vorgelegt, den er noch nicht moderiert hat, und er wird gefragt, ob der Beitrag erscheinen soll oder nicht.
Die relevanten Objekte sind also Post
, User
y Moderation
. A Moderation
hat eine post_id
und eine user_id
. Ich möchte einen Beitrag aus dem Set finden Post.all
wo es keine Moderation
Objekt, das diesem Beitrag und dem aktuellen Benutzer entspricht.
Wie lässt sich dies am effizientesten bewerkstelligen? I podría alle Moderationen für diesen Benutzer abrufen, und dann mit map
um alle Beiträge zu erhalten, die der Benutzer moderiert hat, und dann die Beitragsdatenbank wie folgt abzufragen (Pseudocode) Post.find(:conditions => "id != [list of posts already moderated])
aber ich befürchte, dass das zu langsam sein könnte? Gibt es einen schnelleren Weg?
Wäre es außerdem eine gute Idee, dies irgendwie zwischenzuspeichern? Vielleicht indem man alle Beiträge, die nicht moderiert wurden, abruft und irgendwo speichert, und dann bei zukünftigen Aufrufen der moderate
Methode gemacht werden, diesen Cache zuerst überprüfen und einen Beitrag ausliefern (und diesen Beitrag aus dem Cache entfernen), und erst wieder nach weiteren Beiträgen suchen, wenn der Cache leer ist?
Vielen Dank für Ihre Hilfe!