gpt4 book ai didi

ruby-on-rails - Validates_uniqueness_of 在进行大型交易时不起作用

转载 作者:行者123 更新时间:2023-12-04 06:59:48 24 4
gpt4 key购买 nike

我的 ActiveRecord 模型中有一个 validate_uniqueness_of :field。当我进行单个创建/更新时,它运行良好,但我必须从事务中的 csv 文件进行一些大批量创建
当我在交易中时,validate_uniqueness_of 没有检测到错误并且模型被保存了!

最佳答案

可能是在交易过程中创建了非唯一值吗?

验证方法在事务之前检查,然后所有值仍然不存在于表中,因此是唯一的。

编辑:创建一个为您的字段打开唯一属性的索引,事务将失败,从而阻止添加非唯一元素。
要执行某些操作,您应该在迁移文件中添加一些内容

add_index("tablename", "fieldname", { :name => "fieldname_index", :unique => true })

编辑 2:像这样的事务将给出类似“ActiveRecord::StatementInvalid: Mysql::Error: Duplicate entry '123' for key 1: ”的错误。
Table.transaction do
i1 = Table.new
i1.fieldname = "123"
i1.save
i2 = Table.new
i2.fieldname = "123"
i2.save
end

关于ruby-on-rails - Validates_uniqueness_of 在进行大型交易时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2056646/

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