Railsでacts_as_taggable_onを使用しており、まだタグ付けされていないすべての製品のリストを取得しようとしています。MySQLでは、次のクエリが機能しました。
def self.untagged
available.find(:all,
:joins => %{LEFT JOIN taggings ON products.id = taggings.taggable_id AND taggings.taggable_type = "Product"},
:conditions => "taggings.id IS NULL AND for_sale IS true",
:order => "products.updated_at DESC"
)
ただし、Postgresでは、「Product」列が存在しないというエラーが表示されます。
生成されたSQLは次のようになります。
SELECT count(*) AS count_all FROM "products" LEFT JOIN taggings ON products.id = taggings.taggable_id AND taggings.taggable_type = "Product" WHERE (taggings.id IS NULL AND for_sale IS true) AND (products.date_expires > '2011-09-12') )
これを機能させる方法について何か提案はありますか?MySQLで引き続き機能するように、アクティブレコードに適した方法を使用したいと思います。しかし、それは私が喜んで犠牲にするものです。
前もって感謝します..