Как бы я использовал metawhere для поиска ассоциаций и объединения таблиц?
У меня есть две модели: Message и UserMessage. Я получил эту архитектуру откуда-то еще на SO, но у меня есть некоторые проблемы.
Каждое сообщение имеет ДВА UserMessage: один UserMessage имеет user_id отправителя, а другой - user_id получателя. Это позволяет одной стороне удалять или изменять статус сообщения отдельно от другой.
Как я могу найти список всех сообщений, которые были отправлены между sender_id и receive_id?
Если я сделаю UserMessage.where(:user_id => sender_id), который не показывает мне только получателя, например.
Кроме того: одно сообщение может иметь много пользовательских сообщений, поэтому мне нужно иметь возможность однозначно найти или сгруппировать сообщение. Другими словами, пять пользовательских сообщений, принадлежащих одному и тому же сообщению, я бы просто хотел получить последнее датированное пользовательское сообщение для этого сообщения.
Я думаю, что если я смогу сгенерировать список всех Сообщений, где одно UserMessage - sender_id, а другое - receive_id, это будет работать, но как мне это сделать?
1 ответ
Вы противоречите себе. Сначала вы говорите: "Каждое сообщение имеет ДВА пользовательского сообщения", а затем "пять пользовательских сообщений, принадлежащих одному и тому же сообщению". Если бы вы могли перефразировать вопрос, чтобы сделать это понятным, вам было бы легче помочь.