如何在Rails3中捕获config / initializers下的所有ActiveRecord :: Errors

时间:2014-03-25 06:19:49

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

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

需要像这样的事情

在config / initializers

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

1 个答案:

答案 0 :(得分:0)

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

一种方法是使用rescue_from。您可以在应用程序控制器中执行类似的操作

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

HTH