【问题标题】:uninitialized constant ActiveRecord from exception_notification gem来自 exception_notification gem 的未初始化常量 ActiveRecord
【发布时间】:2011-06-20 08:57:49
【问题描述】:

我在我的 rails 3.0.7 中使用这样的异常通知器-

gem 'exception_notification_rails3', :require => 'exception_notifier'

此应用程序使用 mongoid 而不是 ActiveRecord。但是当我尝试打开 rails c 时,它会出现以下错误 -

Could not load SystemTimer >= v1.2.0. Falling back to timeout.rb. SystemTimer is STRONGLY recommended for timeouts in Ruby 1.8.7. See http://ph7spot.com/blog/system-timer-1-2-release for details.
/var/lib/gems/1.8/gems/exception_notification_rails3-1.2.0/lib/exception_notifier.rb:8:in `default_ignore_exceptions': uninitialized constant ActiveRecord::RecordNotFound (NameError)
from /var/lib/gems/1.8/gems/exception_notification_rails3-1.2.0/lib/exception_notifier.rb:7:in `tap'
from /var/lib/gems/1.8/gems/exception_notification_rails3-1.2.0/lib/exception_notifier.rb:7:in `default_ignore_exceptions'
from /var/lib/gems/1.8/gems/exception_notification_rails3-1.2.0/lib/exception_notifier.rb:30:in `initialize'
from /var/lib/gems/1.8/gems/actionpack-3.0.7/lib/action_dispatch/middleware/stack.rb:33:in `new'
from /var/lib/gems/1.8/gems/actionpack-3.0.7/lib/action_dispatch/middleware/stack.rb:33:in `build'
from /var/lib/gems/1.8/gems/actionpack-3.0.7/lib/action_dispatch/middleware/stack.rb:79:in `build'
from /var/lib/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:209:in `inject'
from /var/lib/gems/1.8/gems/actionpack-3.0.7/lib/action_dispatch/middleware/stack.rb:79:in `each'
from /var/lib/gems/1.8/gems/actionpack-3.0.7/lib/action_dispatch/middleware/stack.rb:79:in `inject'
from /var/lib/gems/1.8/gems/actionpack-3.0.7/lib/action_dispatch/middleware/stack.rb:79:in `build'
from /var/lib/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:162:in `build_middleware_stack'
from /var/lib/gems/1.8/gems/railties-3.0.7/lib/rails/application/finisher.rb:35
from /var/lib/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:25:in `instance_exec'
from /var/lib/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:25:in `run'
from /var/lib/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:50:in `run_initializers'
from /var/lib/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:49:in `each'
from /var/lib/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:49:in `run_initializers'
from /var/lib/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:134:in `initialize!'
from /var/lib/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:77:in `send'
from /var/lib/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing'
from /home/rtdp/workspace/bids/config/environment.rb:5
from /var/lib/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:103:in `require_environment!'
from /var/lib/gems/1.8/gems/railties-3.0.7/lib/rails/commands.rb:22
from script/rails:6:in `require'
from script/rails:6

我尝试在谷歌上搜索,但找不到任何相关内容。 谢谢。

更新 - 我刚刚签入 /var/lib/gems/1.8/gems/exception_notification_rails3-1.2.0/lib/exception_notifier.rb 文件。这个文件有代码 -

exceptions << ActiveRecord::RecordNotFound if defined? ActiveRecord

所以评论了这个,并检查了。现在系统工作了。所以这意味着我的活动记录正在某处声明。我在控制台上再次确认了这一点。

我的 application.rb 文件有这个 -

require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "rails/test_unit/railtie"

现在,什么可能导致包含 ActiveRecord 然后导致异常通知器失败?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 activerecord mongoid


    【解决方案1】:

    各位,http://github.com/rails/exception_notification 不再是官方的 exception_notification 存储库。请参阅主页上的说明。

    官方repo现在位于http://github.com/smartinez87/exception_notification

    如果您执行gem install exception_notification,它将从那里拉出宝石。 此问题已在此处修复,如果没有,请在此处报告问题。

    谢谢!

    【讨论】:

    • ohh.. 这解释了我在使用 rails 3 进行异常通知时遇到的更多一般问题。感谢更新。
    【解决方案2】:

    我发现其他一些 gem 将 ActiveRecord 作为依赖项包含在内,这导致此操作失败。我删除了那个宝石,现在一切都很好。

    【讨论】:

      【解决方案3】:

      Erik Hollensbe fixed this error 在他的 exception_notifier 的 personal fork 中。他的解决方案在 Rails 3.0.9 和 Ruby 1.9.2p180 下非常适合我。

      【讨论】:

        猜你喜欢
        • 2014-05-22
        • 2023-01-13
        • 1970-01-01
        • 2020-10-13
        • 1970-01-01
        • 1970-01-01
        • 2013-03-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多