Я написал пару сложных запросов (по крайней мере, для меня) с интерфейсом запросов Ruby on Rail:
watched_news_posts = Post.joins(:news => :watched).where(:watched => {:user_id => id})
watched_topic_posts = Post.joins(:post_topic_relationships => {:topic => :watched}).where(:watched => {:user_id => id})
Оба эти запроса работают сами по себе. Оба возвращают объекты Post. Я хотел бы объединить эти сообщения в один ActiveRelation. Поскольку в какой-то момент могут быть сотни тысяч сообщений, это необходимо делать на уровне базы данных. Если бы это был запрос MySQL, я мог бы просто использовать UNION
оператор. Кто-нибудь знает, могу ли я сделать что-то подобное с интерфейсом запросов RoR?
Post.watched_news_posts.watched_topic_posts
. Возможно, вам потребуется отправить параметры в области для таких вещей, как:user_id
и:topic
.