我目前正在用Rails重写一个网站。我已经编写了一个模型,将旧的静态URL映射到新的URL,并且在应用程序控制器中捕获RoutingErrors以调用一个方法,该方法查找映射到旧URL的新URL。这在应用程序本身非常有效;如果我访问
http://localhost:3000/home.htm
它将重定向到
http://localhost:3000/home
,但我无法通过我编写的Cucumber/Webrat测试,因为我总是会遇到这样的错误。
When I try to go to the old noticeboard
#features/step_definitions/redirection_steps.rb:7
No route matches "/noticeboard.htm" with {:method=>:get} (ActionController::RoutingError)
(eval):2:in `visit'
./features/step_definitions/redirection_steps.rb:8:in `/^I try to go to the old (.+)$/'
features/old_urls.feature:26:in `When I try to go to the old noticeboard'
很明显,最重要的是代码实际工作,它确实在浏览器中正确重定向,但我希望测试也能通过。我有办法解决这个问题吗?