ruby-on-rails - 如何在 Rails3 的 config/initializers 下捕获所有 ActiveRecord::Errors

标签 ruby-on-rails ruby-on-rails-3 activerecord error-handling

我正在尝试将我的应用程序配置为从我的应用程序中的任何 ActiveRecord 对象打印错误。这样我就可以避免在所有事务中为每个对象打印错误消息。有没有办法做到这一点?

需要这样的东西

在配置/初始化程序中

ActiveRecord::Base.class_eval do
   # For each active_record object in my app
   if self.errors.any?
      puts self.errors.inspect
   end
end

最佳答案

我相信您希望将所有 AR 错误集中在一个地方,

一种方法是使用 rescue_from .简单地说,你可以在你的应用程序 Controller 中做这样的事情

class ApplicationController < ActionController::Base 
   protect_from_forgery with: :exception

   #your normal code

   rescue_from Exception do |exeception|
      #check if this is a AR exception
      #if yes then
      #log it in a different log file
      #if not
      # yield (to follow the default exception chain)
   end
end   

更合适的方法是将它放在一个模块中和 include它在 ApplciationController .

高温高压

关于ruby-on-rails - 如何在 Rails3 的 config/initializers 下捕获所有 ActiveRecord::Errors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22626819/

相关文章:

ruby-on-rails - 使用 Arel 对 AND 和 OR 子句进行分组

ruby-on-rails - Nginx 与单独的 Nodejs 和 Rails 应用程序

ruby-on-rails - ruby /Rails : get time in closest 15-min increment

ruby-on-rails - 需要 yajl 时出现 LoadError

ruby-on-rails - 如何在 Rails 3.1 中获取片段到期日期?

ruby - 如何使用 rspec 删除特定文件?

ruby-on-rails-3 - Rails 教程第 5 章练习 3 - 原来的 full title 函数做了什么?

ruby-on-rails - 一张 table -两种型号

ruby-on-rails - Rails has_many 元数据

ruby-on-rails - Rails 模型生成器工具