He escrito un par de consultas complejas (al menos para mí) con la interfaz de consulta de 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})
Ambas consultas funcionan bien por sí mismas. Ambos devuelven objetos Post. Me gustaría combinar estas publicaciones en una sola ActiveRelation. Dado que podría haber cientos de miles de publicaciones en algún momento, esto debe hacerse a nivel de la base de datos. Si fuera una consulta MySQL, simplemente podría usar el UNION
operador. ¿Alguien sabe si puedo hacer algo similar con la interfaz de consulta de RoR?
Post.watched_news_posts.watched_topic_posts
. Es posible que deba enviar parámetros a los ámbitos para cosas como:user_id
y:topic
.