我有两个模型:Message 和 UserMessage。我从 SO 上的其他地方获得了这个架构,但遇到了一些挑战。
每条消息都有两个 UserMessage:一个 UserMessage 有一个发送者的 user_id,另一个有一个接收者的 user_id。这允许一方独立于另一方删除或更改消息的状态。
如何找到在 sender_id 和 receiver_id 之间发送的所有消息的列表?
例如,如果我执行的 UserMessage.where(:user_id => sender_id) 不只显示收件人。
另外:一条消息可能有很多用户消息,所以我需要能够唯一地找到消息或按消息分组。换句话说,五个 UserMessage 都属于同一个消息,我只想要那个消息的最新日期 UserMessage。
我在想,如果我可以生成一个包含所有消息的列表,其中一个 UserMessage 是 sender_id,另一个是 receiver_id,那会起作用,但我该怎么做呢?