Rails アプリに Facebook のようなメッセージング システムを実装しようとしています。
私のメッセージモデルは次のようになります:
sender_id:references
receiver_id:references
body:text
is_read:bolean
現在ログインしているユーザーと他のユーザーとの間のすべてのメッセージを表示する必要があるため、次のコードを使用しています。
Message.where("sender_id = '#{current_user.id}' OR receiver_id = '#{current_user.id}'")
ただし、このクエリはsend
メッセージとreceived
メッセージを別々に脅かします。receiver_id
現在ログインしているユーザーが(Facebookのように)メッセージを交換したことがあるユーザーのリストを表示するには、列と列の両方でグループ化する必要がありsender_id
ますが、どのように適切に行うべきかはよくわかりません。
どんな助けでも大歓迎です。別の方法で行う必要があると思われる場合は、お気軽にお知らせください:)