我想知道是否有更好的方法来做到这一点:
我有两个复杂的关系,多个连接加入表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 ?
谢谢!