我在使用PostgreSQL的Rails中遇到以下错误:
ActiveRecord::StatementInvalid:
PG::NotNullViolation: ERROR: null value in column "created_at" violates not-null constraint
DETAIL: Failing row contains (4, null, null, 2014-05-08 13:27:56.002747, f, null, null, f, f).
: INSERT INTO "elements" ("updated_at") VALUES ('2014-05-08 13:27:56.002747') RETURNING "id"
我收集它说我试图将2014-05-08 13:27:56.002747
的值插入到代表updated_at
的一个实例的行的Element
列中。这是对的吗?
这应该没问题,因为这个值对我来说似乎是一个有效的日期/时间 - 对吗?
我也收集它说created_at
不能null
,但这看起来很疯狂,因为并非每个实例都会自动获得等于它的日期/时间的created_at
值是创造了吗?
RETURNING "id"
是什么意思?
我很高兴自己继续调试我的应用程序,但如果有人可以为我解压缩此错误消息,那将是一个很好的开端。 (特别是因为堆栈跟踪没有明确错误的创建位置。)
答案 0 :(得分:1)
我也遇到了同样的问题 当我检查它似乎我有嵌套交易
如果遇到同样的问题,请尝试查找
ActiveRecord::Base.transaction
并将其删除
因为在使用事务(可能是bug)时似乎没有分配created_at
希望有所帮助
答案 1 :(得分:0)
它说:“当你运行时,列”created_at“中的空值违反了非空约束”
INSERT INTO "elements" ("updated_at") VALUES ('2014-05-08 13:27:56.002747')
意思是:
created_at
字段的某种默认值;或created_at
。