Hey, J'essaie de mettre en œuvre un système de messagerie tel qu'il est utilisé dans les réseaux sociaux. Le problème auquel je suis confronté concerne d'abord la structure de la base de données et ensuite comment l'implémenter dans les rails.
Ma première idée est que je utilise 3 tables:Rails système de messagerie privé
messages: id | sujet | texte | created_at
récepteurs: id | message_id | lire: booléens
créateurs: id | message_id | lire: Boolean
maintenant je me demande comment implémenter les fonctionnalités suivantes:
1.) un utilisateur peut supprimer son message. mais comme les deux veulent lire le message, comment s'assurer que le message n'est supprimé que lorsque les deux utilisateurs l'ont supprimé.
2.) comment implémenter une réponse? ou en fait comment puis-je trouver le créateur correspondant? 3. comment savoir si un message a été lu par le destinataire?
Une autre idée est: creator_messages: id | creator_id | receiver_id | sujet | texte | lu | created_at receiver_messages: comme creator_messages
cette distinction entre les utilisateurs, afin qu'ils puissent supprimer individuellement leurs messages. mais comment puis-je savoir si le courrier a été lu ou non? Ma troisième approche était fondamentalement mon deuxième mais seulement un des messages de table, puis l'affichage à l'utilisateur.
1. le message est supprimé dès que l'un des utilisateurs le supprime.
2. en fait, comment puis-je représenter les relations comme has_many et appartient?
Je pensais que cela fonctionnerait comme ceci:
model User
:has_many :send_messages, :class_name=>"messages", :foreign_key=>"creator_id"
:has_many :received_messages, :class_name=>"messages", :foreign_key=>"receiver_id"
end
model Messages
belongs_to :user
end
mais en quelque sorte je n'ai pas à travailler. Je suppose qu'il me manque quelque chose de fondamental ici.
quelqu'un L'espoir peut me aider =) Merci beaucoup
Il devrait être ': send_messages', si l'autre est': received_messages' :) –
Je n'ai pas essayé de mettre en place un système de messagerie privé mais si je dois le faire, je vais creuser dans le code insoshi (https://github.com/insoshi/insoshi) ou vérifiez ce plugin: https://github.com/professionalnerd/simple-private-messages (travail avec Restful Authentication). J'espère que cela pourrait aider ... – benoitr
hey, pourquoi vous voulez plusieurs créateurs pour les messages et pas seulement creator_id dans le modèle de messages? –