我处于无法测试的环境中,而且我在 Internet 上找不到信息或任何示例。
假设我有这样的声明:
ActiveRecord::Base.connection.select_values("select a from table_b where id = 'x'")
(我知道不推荐,最好用其他方式处理数据库)
如果某些行的“a”列为 NULL,我在 ruby 中有什么? “NULL”、Nil 还是其他?
最佳答案
Ruby 只有一个值是空的,即 nil
。与其他语言相比,这是 Matz 绝对正确的一件事。
在大多数情况下,适配器将 SQL 中的 NULL 值映射到 nil
。
如果你有一个不是 nil 的默认列(比如 ""或 0),结果将不会是 nil,因为在 Ruby 中没有什么可以等同于 nil(不像一些非常流行但设计不佳的语言)。
irb(main):003:0> nil == ""
=> false
irb(main):004:0> nil == 0
=> false
irb(main):005:0> nil == false
=> false
irb(main):006:0> !!nil
=> false
关于ruby-on-rails - 当列为 NULL 时,ActiveRecords 返回什么值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49127824/