1

私はacts_as_taggable_onをレールに使用していますが、まだタグ付けされていないすべての製品のリストを取得しようとしています。 MySQLでは、次のクエリでは、働いていた:MySQLからPostgresへの変換と 'カラム'プロダクトが存在しないというエラーが発生しました

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のでは、しかし、私はコラム「製品」は存在しないというエラーが出ます。この作業を取得する方法について

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')) 

任意の提案:

生成されたSQLは、ように見えますか?私はそれがまだMySQLで動作するように、アクティブなレコードフレンドリーな方法を使用することを好むでしょう。しかし、それは私が犠牲を払って喜んでいるものです。事前に

おかげ..

答えて

2

あなたはPostgreSQLでは、単一引用符ではなく二重引用符で文字列リテラルを引用しなければならないが、二重引用符は、(テーブル名とカラム名など)の識別子を引用するためのものです。 MySQLは標準で速くて緩やかな傾向がありますが、PostgreSQLはずっと厳しい傾向にあります。

+0

これは機能します、ありがとうございます! –

関連する問題