J'ai écrit quelques requêtes complexes (du moins pour moi) avec l'interface de requête 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})
Ces deux requêtes fonctionnent bien par elles-mêmes. Les deux renvoient des objets Post. Je voudrais combiner ces messages en une seule ActiveRelation. Puisqu'il pourrait y avoir des centaines de milliers de messages à un moment donné, cela doit être fait au niveau de la base de données. S'il s'agissait d'une requête MySQL, je pourrais simplement utiliser l' UNION
opérateur. Est-ce que quelqu'un sait si je peux faire quelque chose de similaire avec l'interface de requête de RoR?
Post.watched_news_posts.watched_topic_posts
. Vous devrez peut-être envoyer des paramètres aux portées pour des éléments tels que:user_id
et:topic
.