组合两个返回关系而不是数组的ActiveRecord::Relation



假设我有以下两个对象:

relation_1 = Company.select("companies.company_code, event_contracts.company_name").left_joins(:event_contract)
relation_1 = Company.select("companies.company_code, event_plans.content").left_joins(:event_plans)

我尝试合并两个对象,但它返回an Arraynot Relation

companies = relation_1 + relation_2
companies.class
=> Array
companies = relation_1.or(relation_2)
=> ArgumentError: Relation passed to #or must be structurally compatible. Incompatible values: [:select, :joins]

是否可以将这两个关系组合起来生成一个ActiveRecord::Relation对象?

这是我的型号

class Company < ActiveRecord::Base
has_many :event_contracts
has_many :event_plans
end
class EventContract < ActiveRecord::Base
belongs_to :company
end
class EventPlan < ActiveRecord::Base
belongs_to :company
end

您可以将select和join组合在一起。

Person.select("persons.p_code, 
students.name, 
teachers.name, 
teachers.salary, 
teachers.updated_at as latest_updated_at")
.left_joins(:student, :teacher)