Rails:我可以禁用某些域中的better_errors gem吗?

时间:2014-07-08 21:05:03

标签: ruby-on-rails rubygems activeadmin better-errors-gem

ActiveAdmin和better_errors gem不会玩得很好。任何渲染错误都会使Rails服务器占用并占用我所有的cpu,需要kill -9才能摆脱死亡旋转并挑选碎片。有没有办法在我的应用程序的一个部分有条件地使用better_errors而不在ActiveAdmin所在的部分使用它?

1 个答案:

答案 0 :(得分:0)

在我的示例中,我准备了lib / middleware / better_errors_patch.rb。

if Rails.env.development? || Rails.env.test?
  require 'better_errors'

  module BetterErrors
    class Middleware
      def call(env)
        if allow_ip?(env) && !env['PATH_INFO'].match(%r{\/admin\/})
          better_errors_call env
        else
          @app.call env
        end
      end
    end
  end
end

我通过此monkey_patch解决了它。首先,在Gemfile中设置gem 'better_errors', require: false,然后在application.rb作用域中添加require './lib/middleware/ex_better_errors'。它对我有用。