gpt4 book ai didi

ruby-on-rails - Rails 空 bool 值?

转载 作者:数据小太阳 更新时间:2023-10-29 08:51:01 24 4
gpt4 key购买 nike

Rails 是否有内置的 Django NullBoolean 等效项,接受三个值(nil、true、false)?如果没有,您建议如何实现?

在我的例子中,我有一个 Overrides 表和一个 Objects 表。 Objects 可以有很多 OverridesOverrides 在结构上与 Objects 几乎相同。在读取 Object 的值之前,我拉取了它的 Overrides,有条件地从中挑选,然后将这些值应用到 Object 之上>.

Override 的任何字段为 nil 都不会应用任何更改。这个系统对我来说运行良好,但我只是向 Objects 添加了一个 bool 字段,所以我需要在 Overrides 上放置一个可为 null 的 bool 值。 Django 的 NullBoolean 在这种情况下工作得很好,但我很难找到 rails 的等效项。

最佳答案

ActiveRecord 将数据库中的可空性和类型分开。此外,除非您在创建/更改列时显式指定 :null => false,否则 ActiveRecord 会将列创建为可空列。所以你应该能够创建一个标准的 bool 列:

create_table "..." do |t|
#...
t.boolean "boolean_column"
end

然后根据需要分配 true/false/nil:

o.boolean_column = true  # true
o.boolean_column = false # false
o.boolean_column = nil # null

关于ruby-on-rails - Rails 空 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12902221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com