我想知道如何连接两个不同的模型,然后通过另一个关联模型对它们进行排序。
假设我有一个帐户,它有多个 CARS 和 BIKES,并且它们都与 WHEELSET 具有多态关系 (has_one)。
我将如何编写查询以选择给定帐户的所有自行车和汽车,并按轮对(或轮对模型中的另一列)对它们进行排序?
Account
has_many :cars, :bikes
Bike
belongs_to :account
has_one wheelset, :as => wheelable
Car
belongs_to :account
has_one wheelset, :as => wheelable
Wheelset
belongs_to :wheelable, :polymorphic => true
我在想类似以下的事情,(不幸的是,这不起作用)
a = Account.first
sets = a.bikes.includes(:wheelset) + self.cars.includes(:wheelset)
sets.order('wheelset.wheels ASC')