2つの異なるモデルを結合して、関連する別のモデルで並べ替える方法を考えています。
たとえば、has_many 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')