我有一个路由,它被限制为仅在存在子域时运行,它看起来像这样:
# Set the default root for when a subdomain is used.
match '', to: 'public::pages#show', constraints: lambda { |r| r.subdomain.present? && r.subdomain != 'app' }
# Set the default application route.
root :to => "pages#index"
我正在寻找一些路由规范来测试该路由是否正确(手动测试应用程序表明该路由实际上工作正常)但是我遇到了一些问题。
我目前对此进行的路由测试只是提供整个域,并将子域作为 get() 调用的一部分:
it "routes to public page on subdomain" do
get('http://somesubdomain.example.com/').should route_to("public::pages#show")
end
但是,此规范失败了,路由器已将其定向到根事件,而不是预期的事件。
<{"controller"=>"public::pages", "action"=>"show"}> expected but was
<{"controller"=>"pages", "action"=>"index"}>.
谁能建议为什么这可能不起作用?