2011-06-18 18 views
4

ポリモーフィックなbelongs_toアソシエーションのアトリビュートでオーダーするActiveRecordクエリを作成するにはどうすればよいですか?多態性属性by belongs_toアトリビュート

例えば、tagged_itemという名前のポリモーフィックなbelongs_toアソシエーションを持つTaggingというモデルがあります。

残念ながらTagging.joins(:tagged_item)ActiveRecord::EagerLoadPolymorphicErrorをスローします。だから私はTagging.joins(:tagged_item).order("tagged_item.created_at DESC")のような何かをすることはできません。

提案がありますか?

答えて

0

多相オブジェクトのデータが異なるテーブルにあるため、多相関係で直接結合することはできません。それでも、次の例のように手動で行うこともできます。

COALESCEは、存在する場合は最初の列を選択し、存在しない場合は最初の列を選択します。それはmysqlのIFNULLと同じです。あるいは、あなたは... WHERE ... IS NULL THEN ... ELSE ... END