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オブジェクトを返します。これらの投稿を1つのActiveRelationに結合したいと思います。ある時点で数十万の投稿が存在する可能性があるため、これはデータベースレベルで行う必要があります。MySQLクエリの場合、単純にUNION
演算子を使用できます。RoRのクエリインターフェイスで同様のことができるかどうか誰かが知っていますか?
Post.watched_news_posts.watched_topic_posts
。:user_id
やなどのスコープにparamsを送信する必要がある場合があります:topic
。