Jam*_*hon 5 logging ruby-on-rails rollback ruby-on-rails-4
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
Run Code Online (Sandbox Code Playgroud)
然后在每个ActiveRecord模型中包含此模块:
class Foo < ActiveRecord::Base
include RollbackLogger
end
Run Code Online (Sandbox Code Playgroud)
编辑:
正如Damien Roche先生建议的那样,您可以在config/initializers目录中创建一个新文件并添加以下行:
ActiveRecord::Base.send(:include, RollbackLogger)
Run Code Online (Sandbox Code Playgroud)
所有型号都将RollbackLogger自动包含该模块.
| 归档时间: |
|
| 查看次数: |
173 次 |
| 最近记录: |