Как использовать промежуточное программное обеспечение Rack только для определенных путей?

Я хотел бы иметьMyMiddleware запустить в моем приложении Rack, но только для определенных путей. Я надеялся использоватьRack::Builder или по крайней мереRack::URLMap, но я не могу понять, как.

Я думал, что это сработает, но это не так:

# in my rackup file or Rails environment.rb:
map '/foo' do
  use MyMiddleware, { :some => 'options' }
end

Или, еще лучше, с регулярным выражением:

map /^foo/ do
  use MyMiddleware, { :some => 'options' }
end

Ноmap кажется, требует приложение в конце; он не вернется к простой передаче контроля своему родителю. (Фактическая ошибка "undefined method 'each' for nil:NilClassс того момента, когда Стойка пытается повернуть конец этогоdo...end блокировать вapp.)

Есть ли промежуточное программное обеспечение, которое принимает массив промежуточных программ и путь и запускает их, только если путь совпадает?

Ответы на вопрос(2)

Ваш ответ на вопрос