Ruby on rails 如何捕获Rails3中config/initializer下的所有ActiveRecord::错误

Ruby on rails 如何捕获Rails3中config/initializer下的所有ActiveRecord::错误,ruby-on-rails,ruby-on-rails-3,activerecord,error-handling,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 我相信你想

我正在尝试将我的应用程序配置为打印应用程序中任何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\u 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   
class ApplicationController
更合适的方法是将其放在模块中,并将其包含在
applicationcontroller


HTH

不清楚你在问什么。。。你能给我们举一个你所期望的行为的例子吗?甚至可能是一些伪代码?再一次-这对我来说似乎没有意义。。。您希望何时调用看跌期权?我问的原因是错误只存在于活动记录的单个实例上。。。只是转瞬即逝。这一秒出现了一个错误,因为有人试图更新,比如说用户模型的用户名-但是太短了。。。但是下一秒——用户放弃了编辑,或者修复了错误——错误就消失了。。。。何时要执行此错误检查?