ActiveRecord, объединяющий отношения
Мне интересно, есть ли лучший способ сделать это:
У меня есть 2 сложных отношения с несколькими объединениями, присоединяющимися к Таблице D. Я хочу объединить / объединить их, чтобы получить записи Таблицы D. Следующее работает, но есть ли лучший способ?
class TableD < ActiveRecord::Base
def self.relation_three
r1 = TableA.relation_one.select("d.id")
r2 = TableB.relation_two.select("d.id")
where("d.id IN (#{r1.to_sql}) OR d.id IN (#{r2.to_sql})")
end
И если это невозможно, у меня есть дополнительный вопрос:
Можно ли вернуть класс результата активной записи, отличный от записи, на которой основан запрос? то есть:
TableA.all.joins(:b).select("b.*") # Coerce into TableB class ?
Спасибо!