Ich plane, ein privates Nachrichtensystem zwischen den Mitgliedern zu implementieren. Ich frage mich, was sind die bevorzugten Ansätze dazu.
Anforderungen sind
Ich sollte in der Lage sein, sie leicht als etwas wie das zu erhalten
%Vor%Beim Aufruf von @ user.conversations sollten nur die Personen abgerufen werden, die mir Nachrichten oder Personen gesendet haben, an die ich Nachrichten sende. current_user sollte ausgeschlossen werden.
Wenn ich sender_id = 5 bin und an to_id = 10 sende, antwortet die andere Person als Absender = 10 to_id = 5. Dies sollte als das gleiche Konversationsobjekt betrachtet und verstanden werden.
Zum letzten Punkt. Ich bin nicht sicher, was der bevorzugte Ansatz zum Modellieren ist.
Es wird bevorzugt, ein Konversationsmodell zu verwenden, um alle Nachrichten wie
zu verarbeiten %Vor%Oder es ist bevorzugt, ein Konversationsmodell für die Zuordnung und ein Nachrichtenmodell für Nachrichten zu erstellen.
Ich würde gerne Beispiele dafür sehen, wie diese Beziehung implementiert werden kann und ob es eine zusätzliche Methode zur Implementierung gibt.
Ich bin hier ein bisschen verloren.
Ein viel einfacheres Modell ist es, jede Nachricht zu erfassen:
%Vor%Wenn Sie die Nachrichtenthreads erfassen müssen, kann jede Nachricht, die eine Antwort ist, einen Verweis auf die ursprüngliche Nachricht speichern, die die Konversation (auch Thread genannt) startet. Zum Beispiel:
%Vor%acts_as_messageable ist ein bisschen in die Jahre gekommen, sollte dir aber ein paar Ideen geben.
Wenn Sie dieses DB-Modell verwenden:
%Vor%Ich denke, Sie müssen Folgendes bereitstellen: finder_sql in: has_many, etwas Ähnliches
%Vor%Tags und Links ruby ruby-on-rails-3 ruby-on-rails