没有Savepoint的Rails保存(直接提交save / create)

时间:2014-09-01 05:41:34

标签: ruby-on-rails activerecord ruby-on-rails-4

我想知道是否有任何方法可以通过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

1 个答案:

答案 0 :(得分:0)

根据我的理解,你必须保存记录,尽管有任何验证错误。

尝试使用Model.save(:validate => false)这会保存您的记录,但保存记录时会出现任何验证错误。