我正在使用的应用程序中有一条路线,它看起来像这样......
match ":place_id/:id", :controller => "companies", :action => "show", :place_id => /\S{2}/
所以在我的浏览器中,我可以导航到这个 URL。
mylocalmachine/gb/some-company
在服务器日志中一切都很好。
Started GET "/gb/some-company" for 127.0.0.1 at 2013-04-30 17:44:52 +0100
Processing by CompaniesController#show as HTML
Parameters: {"place_id"=>"gb", "id"=>"some-company"}
但在控制器规范中,我试图测试这条路线及其行为。
get "/gb/some-company"
但我得到这个错误
ActionController::RoutingError: No route matches {:controller=>"companies", :action=>"gb/some-comapny"}
注意:我尝试将此路由放在 routes.rb 文件的顶部,以查看测试是否有效但没有运气。所有其他规格也都通过了。我可能会出错的任何想法将不胜感激。
更新:这就是测试的样子......
params_from(:get, "/gb/some-company").should == {:controller => "companies", :action => "show", :country_id => "gb", :id => "some-company"}