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



ActiveAdmin和better_errors gem不玩好。任何渲染错误都会使Rails服务器卡住并占用我所有的cpu,需要kill -9从死亡旋转中跳出来并将碎片捡起来。是否有一种方法,有条件地使用better_errors在我的应用程序的一部分,而不使用它在部分ActiveAdmin生活?

在我的例子中,我准备了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。然后在应用中加入require './lib/middleware/ex_better_errors'。rb范围。

相关内容

  • 没有找到相关文章

最新更新