Ruby on Rail'in sorgu arayüzüyle birkaç karmaşık sorgu (en azından benim için) yazdım:
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})
Bu sorguların ikisi de kendi başlarına iyi çalışıyor. Her ikisi de Post nesnelerini döndürür. Bu gönderileri tek bir ActiveRelation'da birleştirmek istiyorum. Bir noktada yüz binlerce gönderi olabileceğinden, bunun veritabanı düzeyinde yapılması gerekir. Bir MySQL sorgusu olsaydı, UNION
operatörü basitçe kullanabilirdim . RoR'un sorgu arayüzüne benzer bir şey yapıp yapamayacağımı bilen var mı?
Post.watched_news_posts.watched_topic_posts
.:user_id
Ve gibi şeyler için kapsamlara parametre göndermeniz gerekebilir:topic
.