让我为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] 删除。
我来说两句