2012-01-09 3 views
4

Есть ли способ ИЗМЕНЕНИЯ (NOT заменить) промежуточное ПО в рельсах?Обновление промежуточного программного обеспечения в Rails

Таким образом, вместо:

config.middleware.delete ::Rack::Cache 
config.middleware.use ::Rack::Cache, :metastore => "rails:/", :entitystore => "rails:/", :verbose => false 

Я хочу, чтобы просто написать что-то вроде config.middleware.find!(::Rack::Cache).verbose = false.

ОБНОВЛЕНИЕ: Причина в том, что capybara-webkit prints tons of messages при работе от огурца.

+0

Вы пытаетесь просто превратить флаг verbose в false? Или вы пытаетесь сделать это многословным для некоторых вызовов и не-многословным для других? –

+0

Просто установите флаг в значение false. Не хотите удалять/вставлять Rask, чтобы избежать беспорядков. –

ответ

1

я закончил с:

# Disable annoying Cache messages: 
    config.action_controller.perform_caching = true 
    config.action_dispatch.rack_cache = {:metastore => "rails:/", :entitystore => "rails:/", :verbose => false} 

Это работало мою частность case (кеш Rails использовался Dragonfly and wasn't inserted anymore).

Я не думаю, что есть способ сделать то, что я изначально задал.

1

Я думаю, что для этого конкретного промежуточного слоя, вы можете установить параметр среды Rack для объединения с конфигурацией по умолчанию в соответствии с: http://rtomayko.github.com/rack-cache/configuration

+0

Это просто плохая конфигурация 'Rack :: Cache', а не внутри Rails. Но даже переопределение env из Rails before_filter не работает. Так что до сих пор не повезло. –

+0

ПРИМЕЧАНИЕ. В рельсах есть специальная конфигурация config.action_dispatch.rack_cache = {: metastore => "rails: /",: entitystore => "rails: /",: verbose => false} ', которая ПОДДЕРЖИВАЕТСЯ РАБОТАТЬ, но это не так. –