【发布时间】:2019-11-30 06:31:33
【问题描述】:
我正在将 Rails 应用程序从 4.2 升级到 5.x。我们正在使用一个 firebird 数据库,最近发现了一个 new adapter,它也可以与 Rails 5 一起使用。
在测试应用程序后,大部分东西都在工作。但是我对标记为长度为 1 的 char 字段的列有问题 - 我们将此列用作布尔字段。 “F”表示假,“T”表示真。
在我们的应用程序中,我们在数据库中查询这样的字段:
model.where(inaktiv: [false, nil]
这会导致这样的 sql 语句:
select * from model where inaktiv in ('f', null)
我遇到的问题是小写的 f。我在映射到字符串的活动记录 gem 中进行了搜索,但找不到该位置。这是在哪里完成的?
【问题讨论】:
-
这是一个疯狂的代码,
... in ( null )。尽管还有更疯狂的选择...not in ( null )。见stackoverflow.com/questions/6362112/…
标签: ruby-on-rails ruby firebird