假设我在名为 SampleModel
的 Rails 模型上有一个整数列 sample_column
。我正在从外部源获取数据,并且使用 create!
方法创建许多新的 SampleModel
行,并将所有列作为create!
的哈希参数。有时,sample_column 太大(超出范围),MySQL 会抛出错误,但它会阻止保存整行。我想做的只是不将该 sample_column
写入数据库,以便它可以正常保存。
有什么办法可以做到这一点吗?请记住,我不知 Prop 体哪一列会提前超出范围,因为数据是不可预测的。所以我想捕获所有内容,如果无法写入则忽略该列。
最佳答案
如果大小是导致模型损坏的问题,并且如果您确定此特定列是导致模型损坏的唯一原因,那么我建议您使用救援,我建议将列类型更改为 bigint
begin
SomeModel.create!(...., sample_column: hash[:sample_column])
rescue
Somemodel.create!(....)
end
关于mysql - 如何捕获 Rails 中超出范围的特定列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29572472/