Napisałem kilka złożonych zapytań (przynajmniej do mnie) za pomocą interfejsu zapytań 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})
Oba te zapytania działają dobrze samodzielnie. Oba zwracają obiekty Post. Chciałbym połączyć te posty w jedną ActiveRelation. Ponieważ w pewnym momencie mogą pojawić się setki tysięcy postów, należy to zrobić na poziomie bazy danych. Gdyby to było zapytanie MySQL, mógłbym po prostu użyć UNION
operatora. Czy ktoś wie, czy mogę zrobić coś podobnego z interfejsem zapytań RoR?
Post.watched_news_posts.watched_topic_posts
. Może być konieczne wysłanie parametrów do zakresów dla rzeczy takich jak:user_id
i:topic
.