我在rails应用程序上有一个ruby,我在其中查询布尔列Flag。代码是:
Merchant.where( “标志=?”,假)
但是这根本不起作用,唯一的结果是Merchants表没有列名“flag”。有没有什么办法解决这一问题?列名以大写字母开头,但正在搜索小写“flag”
答案 0 :(得分:1)
如果在创建表时引用了列名,那么您将不得不永久引用它。所以,如果你从这开始:
create table merchants (
-- ...
"Flag" boolean
-- ...
)
然后你必须使用
来引用它Merchant.where('"Flag" = ?', false)
PostgreSQL将所有未加引号的标识符规范化为小写(不像标准所说的那样是大写),这就是错误消息抱怨flag
而不是Flag
的原因。
如果可以,您可能希望仅使用小写列名重建表。