我想知道是否有任何方法可以通过ActiveRecord插入Rails而无需通过保存点。所以,直接插入(并提交)。
问题是,如果抛出异常,我不希望同一事务中的保存/创建也被回滚。我试了几个小时寻找它但不确定如何。
我在开发中的数据库是SQLite,我相信在存储方面应该有任何不同的东西。
编辑:代码
log = config.model.where(md5: md5).first
if log
puts "I AM HERE 5A"
log.frequency += 1
log.save
else
puts "I AM HERE 5B"
config.model.transaction(requires_new: true) do
config.model.create!({
md5: md5,
level: level,
message: message,
backtrace: backtrace,
class_name: class_name,
method_name: options[:method],
line: options[:line],
file_name: options[:file],
parameters: (options[:parameters].blank? ? "" : options[:parameters].inspect),
description: options[:description]
})
end
end
答案 0 :(得分:0)
根据我的理解,你必须保存记录,尽管有任何验证错误。
尝试使用Model.save(:validate => false)
这会保存您的记录,但保存记录时会出现任何验证错误。