2011-09-28 68 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

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

相关问题