2011-06-20 5 views
1

私は正しくHerokuで実行するためのアプリケーションを取得しようとしています。 (Herokuのは?、葉のPostgreSQLデータベースを使用しています)PostgreSQLとHeroku、検索とグループ

開発では、私はsqliteのを使用していますが、これはあなたが見ることができるように=>

@productsort = Products.find(:all, 
          :select => 'count(*) count, color', 
          :group => 'color', 
          :order => 'count DESC', 
          :conditions => 'size = "Small"') 

、私がしようとしているコントローラでの私のコードですグループの製品を色で分類し、それらを最も多くの金額で注文します。

また、製品は「小」である必要があります。 (条件)

SQLでは、正常に動作します。

しかし、PostgreSQL(heroku)ではありません。これが実行されているからである

2011-06-20T18:20:33+00:00 app[web.1]: ActiveRecord::StatementInvalid (PGError: ERROR: column "Small" does not exist 

2011-06-20T18:20:33+00:00 app[web.1]: LINE 1: ...ducts".* FROM "products" WHERE (size = "Smal... 

フム...私は周りに検索したと私は私が持っているものに似た何かを見つけることができませんでした「Herokuのは、ログ」。

すべてのヘルプが作成されます。

+2

Herokuに展開している場合は、PostgreSQLをインストールして開発してください。 1つのデータベースの上に展開するが、別のデータベースに展開することは、苦痛、苦痛および混乱のレシピです。 –

答えて

3

条件の中で文字列を一重引用符で囲む必要があります(二重引用符はsqliteでも動作しますが、PostgreSQLでは間違いありません)。

だから、これであなたの条件を置き換える:

:conditions => "size = 'Small'" 

それはまだあまりにもSQLiteの中で動作します。

+0

PostgreSQLの二重引用符は、引用符で囲むのではなく、文字列の値を引用するためのものです。 –

関連する問題