【问题标题】:Rails postgresql: Error with camel case columns [duplicate]Rails postgresql:驼峰式列错误[重复]
【发布时间】:2017-05-07 11:41:06
【问题描述】:

我正在尝试运行这个非常简单的查询

unless ram.blank?
      list = list.where(['numRam >= ?', ram])
end

它在我使用 mysql 作为数据库的本地服务器上完美运行,但它在我使用 psql 的生产环境中给了我这个错误

2017-05-07 11:13:57 UTC ERROR:  column "numram" does not exist at character 68
2017-05-07 11:13:57 UTC STATEMENT:  SELECT COUNT(*) FROM "mobiles" WHERE "mobiles"."visible" = $1 AND (numRam >= '5')

显然,它将numRam 更改为numram,这在我的数据库中不存在。有什么解决办法吗?

【问题讨论】:

    标签: mysql ruby-on-rails postgresql ruby-on-rails-4


    【解决方案1】:

    试试这个技巧:

    unless ram.blank?
      list = list.where(['"numRam" >=?', ram])
    end
    

    【讨论】:

    • 这是新的错误 2017-05-07 11:51:25 UTC 错误:列“numRam >= '1'”在字符 68 2017-05-07 11:51 处不存在: 25 UTC 声明:SELECT COUNT(*) FROM "mobiles" WHERE "mobiles"."visible" = $1 AND ("numRam >= '1'")
    • 不应该是'"numRam" >=?'
    • 是的 '"numRam" >=?' 解决了 psql 上的问题。但是,它在 mysql 上不再起作用,这很好。我的建议是不要在 psql 中使用 camelcase 并尝试在开发和生产中使用相同的数据库。
    • 绝对在 dev 和 prod 中使用相同的数据库,其他任何事情都是令人沮丧的源泉。你不能在生产中更改你的列名来绕过这个黑客吗?
    猜你喜欢
    • 2020-11-15
    • 1970-01-01
    • 2017-09-15
    • 2015-12-06
    • 2013-09-29
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-09
    相关资源
    最近更新 更多