【发布时间】:2018-09-27 17:15:14
【问题描述】:
重复记录被写入数据库的原因是什么?在我的创建操作中,我首先检查是否存在具有唯一标识符的记录,如果存在则更新它,否则会创建一个新记录。但现在在我的数据库中,我看到重复的记录不仅相隔几秒或几分钟,甚至相隔几天或几个月。这可能是什么原因造成的?
def create
record_uid = params.delete(:uid)
if record_uid.present?
record = Record.find_by(uid: record_uid)
unless record.present?
redirect_to error_path and return
end
else
record = Record.new
end
record.attributes = params
record.save
redirect_to record
end
【问题讨论】:
-
您必须发布更多代码以供我们帮助。
-
是代码跳过验证的一部分吗?
-
数据库级别约束?
-
几乎可以是任何东西。
-
模型中没有验证或数据库中没有约束。创建操作中的创建或更新检查不应该足够吗?什么可以解释相隔几天的重复记录?
标签: ruby-on-rails database postgresql duplicates