2011-09-28 72 views
1

我有一個紅寶石在rails應用程序中,我正在查詢一個布爾列,Flag。該代碼是:爲什麼不在where查詢在postgresql中工作?

Merchant.where

然而,這並不在所有的工作,唯一的結果是,招商表沒有列名「標誌」(,假「標記=?」)。有沒有什麼辦法解決這一問題?列名以大寫字母開頭,但搜索正在進行小寫「標記」

+0

是的,我引用了Flag。 –

+0

它是「旗幟」還是「旗幟」?在RoR中,約定是使用小寫字母。 – Behrang

回答

1

如果在創建表時引用了列名,那麼您將必須永遠引用它。所以,如果你開始使用此:

create table merchants (
    -- ... 
    "Flag" boolean 
    -- ... 
) 

那麼你就必須使用

Merchant.where('"Flag" = ?', false) 

PostgreSQL的標準化所有未加引號的標識符(標準說不大寫)以小寫來引用它,這就是爲什麼錯誤消息抱怨flag而不是Flag

如果可以,您可能希望只用小寫字母名稱重建表格。

相關問題