2011-06-20 61 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)。

這是運行「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... 

嗯......我已搜索周圍,我找不到類似的東西我有什麼關係。

所有的幫助將會被處理。謝謝

+2

如果您正在部署到Heroku,請自己幫忙併安裝PostgreSQL進行開發。在一個數據庫之上進行開發,但部署在另一個數據庫上是痛苦,痛苦和混亂的祕訣。 –

回答

3

你需要在條件中使用單引號(你可以在sqlite中使用雙引號,但它們絕對不適用於PostgreSQL)。

所以用這個替換您的條件:

:conditions => "size = 'Small'" 

它仍然會在SQLite的工作了。

+0

右側,PostgreSQL中的雙引號用於引用標識符,而不用於引用字符串值。 –