在我的路线文件中,我有:
resources :subscription, :only => [:show], :constraints => {:protocol => "https"}
我正在尝试为这条路线添加一个规范,如下所示:
it "recognizes and generates #show" do
{ :get => "/subscription", :protocol => 'https' }.should route_to(:controller => "subscriptions", :action => "show")
end
但是,规范仍然失败。
如果我删除
:protocol => 'https'
,规范也失败了:Action Controller ::路由错误:
没有路线匹配“/订阅”
最佳答案
(未记录的?)解决方案是简单地包含一个完整的虚拟 url,如下所示:
it "recognizes and generates #show" do
{ :get => "https://test.host/subscription" }.should route_to(:controller => "subscriptions", :action => "show")
end
我从 this ticket 中发现的和 this changeset .
关于ruby-on-rails - 如何使用 rspec 在路由规范中指定 https 协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7317761/