1

2つの異なるモデルに参加し、別の関連モデルを使用してそれらを並べ替える方法が不思議です。Rails 3 - 複数のモデルのクエリと並べ替え

私はアカウントを持っていますが、それはhas_many CARSとBIKESであり、どちらもホイールセットと多相関係(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') 

ありがとうございました!

答えて

3

標準のRuby配列を作成し、配列sort methodを使用してそれらを並べ替えることができます。

a = Account.first 
sets = Array.new 
sets += a.bikes + a.cars 
sets.sort! { |a, b| a.wheelable <==> b.wheelable } 

私はこれをテストしませんでしたが、この状況では、おおまかにどのように私はそれについて調べましたか?

+2

ザダズラー!よくやった。私は演算子は<=> – sweetroll

+0

と思うが正しい。小さなネットブックに載っていた。ほとんど画面を読むことができませんでした:D /言い訳 –

関連する問題