ฉันได้เขียนคำถามที่ซับซ้อนสองสามข้อ (อย่างน้อยก็สำหรับฉัน) ด้วยอินเทอร์เฟซการสืบค้นของ 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})
คำค้นหาทั้งสองนี้ทำงานได้ดีด้วยตัวเอง ทั้งสองส่งคืนวัตถุโพสต์ ฉันต้องการรวมโพสต์เหล่านี้ไว้ใน ActiveRelation เดียว เนื่องจากอาจมีหลายแสนโพสต์ในบางจุดจึงจำเป็นต้องดำเนินการในระดับฐานข้อมูล หากเป็นแบบสอบถาม MySQL ฉันสามารถใช้ตัวUNION
ดำเนินการได้ มีใครรู้บ้างว่าฉันสามารถทำสิ่งที่คล้ายกันกับอินเทอร์เฟซการสืบค้นของ RoR ได้หรือไม่?
Post.watched_news_posts.watched_topic_posts
ขอบเขตแล้วเรียกพวกเขาทั้งสองเช่น คุณอาจจะต้องส่งใน params ขอบเขตสำหรับสิ่งที่ต้องการและ:user_id
:topic