作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
在我的数据库中,我有一个具有如下模式的表
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",
}
]
}
最佳答案
null 和 default 在迁移中有不同的目的。如果您希望将默认值设置为 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/
我是一名优秀的程序员,十分优秀!