Message と UserMessage の 2 つのモデルがあります。SO の別の場所からこのアーキテクチャを取得しましたが、いくつかの課題があります。
各メッセージには 2 つの UserMessage があります。1 つの UserMessage には送信者の user_id があり、もう 1 つは受信者の user_id があります。これにより、一方の当事者が他方とは別にメッセージのステータスを削除または変更できます。
sender_id と receiver_id の間で送信されたすべてのメッセージのリストを見つけるにはどうすればよいですか?
たとえば、 UserMessage.where(:user_id => sender_id) を実行すると、受信者だけが表示されません。
また、1 つのメッセージに多数の UserMessage が含まれる場合があるため、メッセージを一意に検索またはグループ化できる必要があります。つまり、5 つの UserMessage がすべて同じメッセージに属している場合、そのメッセージの最新の日付の UserMessage が必要です。
1 つの UserMessage が sender_id で、もう 1 つが receiver_id であるすべてのメッセージのリストを生成できるかどうかを考えていますが、それはうまくいくでしょうか?