1
我有一个红宝石在rails应用程序中,我正在查询一个布尔列,Flag。该代码是:为什么不在where查询在postgresql中工作?
Merchant.where
然而,这并不在所有的工作,唯一的结果是,招商表没有列名“标志”(,假“标记=?”)。有没有什么办法解决这一问题?列名以大写字母开头,但搜索正在进行小写“标记”
我有一个红宝石在rails应用程序中,我正在查询一个布尔列,Flag。该代码是:为什么不在where查询在postgresql中工作?
Merchant.where
然而,这并不在所有的工作,唯一的结果是,招商表没有列名“标志”(,假“标记=?”)。有没有什么办法解决这一问题?列名以大写字母开头,但搜索正在进行小写“标记”
如果在创建表时引用了列名,那么您将必须永远引用它。所以,如果你开始使用此:
create table merchants (
-- ...
"Flag" boolean
-- ...
)
那么你就必须使用
Merchant.where('"Flag" = ?', false)
PostgreSQL的标准化所有未加引号的标识符(标准说不大写)以小写来引用它,这就是为什么错误消息抱怨flag
而不是Flag
。
如果可以,您可能希望只用小写字母名称重建表格。
是的,我引用了Flag。 –
它是“旗帜”还是“旗帜”?在RoR中,约定是使用小写字母。 – Behrang