Я написав кілька складних запитів (принаймні для мене) за допомогою інтерфейсу запитів 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. Я хотів би об’єднати ці повідомлення в єдину ActiveRelation. Оскільки в якийсь момент може бути сотні тисяч повідомлень, це потрібно робити на рівні бази даних. Якби це був запит MySQL, я міг би просто користуватися UNION
оператором. Хтось знає, чи можу я зробити щось подібне з інтерфейсом запитів RoR?
Post.watched_news_posts.watched_topic_posts
. Можливо, вам доведеться надіслати параметри до областей для таких речей, як:user_id
і:topic
.