假设我有以下两个对象:
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 Array
和not 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)