gpt4 book ai didi

ruby-on-rails - 设置默认值时出现空约束错误 Ruby On Rails - Postgresql

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

在我的数据库中,我有一个具有如下模式的表

  create_table "external_source", force: :cascade do |t|
t.string "external_id"
t.string "permalink", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "is_deleted", default: false, null: false
t.string "company_name", default: ""
t.boolean "hide_salary", default: true, null: false
end

但是当我尝试在没有 is_deleted 参数的情况下插入值时,Rails 服务器会抛出违反空约束的错误,例如:

ActiveRecord::StatementInvalid (PG::NotNullViolation: ERROR: null value in column "is_deleted" violates not-null constraint

现在,当我设置了它的默认值时,我并没有预料到会出现这个错误。你能告诉我我做错了什么吗?谢谢你

这里是要插入的JSON

{
"data":
[
{
"external_id":"2262a0228sf-1b9e-sd4e76-b5d7-a8ba01783ebb9i3413139",
"permalink": '234242341',
"hide": true,
"company_name": "com1",
}
]
}

最佳答案

nulldefault 在迁移中有不同的目的。如果您希望将默认值设置为 false,当 Controller 中没有设置任何值时,只需使用,

默认:false,

在您的情况下无需使用 null:false 参数。 default 会为您完成这项工作。有关 null 和 default 的更多解释,请查看以下链接 How do :default => 0 and :null => false differ for integer fields in migrations?

关于ruby-on-rails - 设置默认值时出现空约束错误 Ruby On Rails - Postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51338674/

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