如何在 ActiveRecord#create 调用中表示 SQL 值 NULL?

How to represent the SQL value NULL in ActiveRecord#create calls?

由于seeds.rb在Ruby中,我猜如果我想要

的效果
insert into foo values (hoo: "ioo", koo: null);

我应该做类似的事情

Foo.create(hoo: "ioo", koo: nil)

在这种情况下,Ruby 值 nil 是否映射到 SQL 值 null?我知道

Foo.create(hoo: "ioo")

将创建一行 koo of NULL,但我的 seeds.rb 的行在这种情况下是在 quick-n-dirty SQL 中连接在一起的字符串] 查询,因此简单地跳过具有空值的列可能比让节点模块 better-sqlite3 停止吐出版本不匹配消息需要更多的精神努力。我想我可以收集这些种子并检验我的 nil->NULL 假设而不是在这里问,但我是新手 rails 我对破坏东西很偏执。

是的,Foo.create(hoo: "ioo", koo: nil) 会将 koo 列设置为 NULL。

你不能通过 运行 seeds.rb 真正破坏任何东西,然后看看会创建什么。如果不是您想要的,请删除并重试!

是的,我所知道的所有 SQL gem 都将 Ruby nil 翻译成 SQL NULL.