Rails 4,更好地记录回滚?

詹姆斯·麦克马洪

让我为Rails疯狂的一件事是,我将ROLLBACK在控制台中看到一条消息,而没有任何理由附加到回滚上。这通常会导致我寻找一些验证错误,但是希望获得更详细的消息会更好。

无论如何,是否有针对数据库回滚启用更详细的日志记录的功能?

克里斯·莱德

您可以使用after_rollback回调。

创建一个名为RollbackLogger的模块,并将其放在您的app / concerns目录中

module RollbackLogger
  extend ActiveSupport::Concern

  included do
    after_rollback :log_status, on: [:create, :update]
  end

  def log_status
    Rails.logger.info "Rollback caused by: #{self.errors.full_messages}"
  end
end

然后在每个ActiveRecord模型中包含此模块:

class Foo < ActiveRecord::Base
  include RollbackLogger
end

编辑:

正如Damien Roche先生建议的那样,您可以在config/initializers目录内创建一个新文件并添加以下行:

ActiveRecord::Base.send(:include, RollbackLogger)

所有型号将RollbackLogger自动包含该模块。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails:回滚错误

来自分类Dev

在Rails中回滚?

来自分类Dev

Rails:回滚错误

来自分类Dev

Rails交易不会回滚

来自分类Dev

Rails中的ActiveRecord回滚

来自分类Dev

Rails交易不会回滚

来自分类Dev

Fixnum:Rails回滚错误

来自分类Dev

Rails回滚投标交易

来自分类Dev

在Rails模型中发生回滚时如何保存记录

来自分类Dev

Rails:如何在with_lock块内回滚活动记录?

来自分类Dev

使用execute回滚Rails迁移

来自分类Dev

Ruby on Rails-回形针回滚交易

来自分类Dev

为什么在Rails 4数据库中使用载波上传图像时会回滚?

来自分类Dev

具有has_one关联回滚的Rails 4 nested_attributes

来自分类Dev

在Rails控制台中查看回滚错误的原因

来自分类Dev

Rails回滚,更改类型并再次迁移

来自分类Dev

如何使Rails“忘记”我使用迁移回滚的功能?

来自分类Dev

如何在Rails中回滚数据库事务

来自分类Dev

Rails保存nested_attributes时避免回滚

来自分类Dev

使用嵌套表单创建用户时的Rails回滚

来自分类Dev

Rails 4.2迁移错误,但没有回滚

来自分类Dev

在我的情况下,我如何回滚 ruby on rails

来自分类Dev

rails:rails的条件4

来自分类Dev

rails:rails的条件4

来自分类Dev

Rails 4活动记录查询

来自分类Dev

Rails 4不更新记录

来自分类Dev

用rails更新记录4

来自分类Dev

使用Rails的活动记录,是否有另一种方法可以在不引发异常的情况下进行回滚?

来自分类Dev

更好地了解Rails中的format关键字