Ruby on rails Rails中的中间件更新

Ruby on rails Rails中的中间件更新,ruby-on-rails,ruby,rack,middleware,Ruby On Rails,Ruby,Rack,Middleware,有没有办法修改(而不是替换)rails中的中间件 因此,不是: config.middleware.delete ::Rack::Cache config.middleware.use ::Rack::Cache, :metastore => "rails:/", :entitystore => "rails:/", :verbose => false 我只想写一些类似于config.middleware.find的东西!(::Rack::Cache).verbose=fal

有没有办法修改(而不是替换)rails中的中间件

因此,不是:

config.middleware.delete ::Rack::Cache
config.middleware.use ::Rack::Cache, :metastore => "rails:/", :entitystore => "rails:/", :verbose => false
我只想写一些类似于
config.middleware.find的东西!(::Rack::Cache).verbose=false


更新:之所以这样做,是因为从cucumber运行时,capybara webkit。

我认为对于这个特定的中间件,您可以将Rack environment选项设置为与其默认配置合并,如下所示:

I结束时:

  # Disable annoying Cache messages:
  config.action_controller.perform_caching = true
  config.action_dispatch.rack_cache = {:metastore => "rails:/", :entitystore => "rails:/", :verbose => false}
这适用于我的特殊情况(Rails缓存由使用)


我不认为有什么办法可以实现我最初提出的要求。

您是想简单地将:verbose标志改为false吗?或者你想让它对某些调用是详细的,而对其他调用不是详细的?只需将标志设置为false。不想删除/inser Rask以避免把事情搞砸。这只是糟糕的
Rack::Cache
config,而不是Rails内部。但即使在过滤器之前覆盖Rails中的env也不起作用。注意:rails
config.action\u dispatch.rack\u cache={:metastore=>“rails:/”,:entitystore=>“rails:/”,:verbose=>false}
中有一个特殊的配置应该可以工作,但它不能工作。