加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails 4,更好地记录回滚?

发布时间:2020-12-17 03:16:51 所属栏目:百科 来源:网络整理
导读:Rails让我发疯的一件事就是我会在控制台中看到一条ROLLBACK消息,没有任何理由附加到回滚上.这经常导致我寻找一些验证错误,但是有一个更详细的消息会很高兴. 有没有为db回滚启用更详细的日志记录? 解决方法 您可以使用 after_rollback回调. 创建一个名为Roll
Rails让我发疯的一件事就是我会在控制台中看到一条ROLLBACK消息,没有任何理由附加到回滚上.这经常导致我寻找一些验证错误,但是有一个更详细的消息会很高兴.

有没有为db回滚启用更详细的日志记录?

解决方法

您可以使用 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

编辑:

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

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

所有型号都将自动包含RollbackLogger模块.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读