Приложение Rails 3, над которым я работаю, содержит некоторую логику, которая вызывает следующий код (который я не могу изменить):
Rails.application.routes.recognize_path("/customers", :method => :get)
«Клиенты», конечно, переменные.
Я пишу связанный тест Rspec, который вызывает код, содержащий указанную логику, и тест имеет полную среду Rails. Когда я поднимаю следующее:
Rails.application.routes.routes.inspect
содержит правильные маршруты (например, один из маршрутов "GET /customers").
Когда я запускаю тест, логика приводит к:
No route matches "/customers"
Выполнение следующих действий:
@routes = Rails.application.routes
assert_recognizes({:controller => "customers", :action => "index"}, "/customers")
приводит к той же ошибке.
В рамках вспомогательного теста, следующее:
# this succeeds and returns "/customers"
x = helper.customers_path
Rails.application.routes.recognize_path(x, :method => :get)
снова приводит к той же ошибке (не найдено ни одного маршрута "/ клиенты")
Я на 100% уверен, что Rails.application.routes содержит правильные маршруты.
Кто-нибудь знает, в чем причина?
Спасибо!