これが私のルートです
match "/:type/:brand/:model/:plate" => "site/vehicles#show",
:constraints => {:plate => /[a-z]{3}\d{4}/}, :as => :vehicle
ルートテストに合格
# the route test passess
it "routes to #show" do
{:get => '/carro/volksvagen/gol-2-0/abc1234'}.should route_to(
"site/vehicles#show",
:type => "carro",
:brand => "volksvagen",
:model => "gol-2-0",
:plate => "abc1234"
)
end
しかし、ジャーニー(1.0.0 => 1.0.4)も更新したレール(3.2.0 => 3.2.8)をアップグレードした後、次のCONTROLLERテスト(IMHOはルートをチェックすべきではないが、明らかにチェックしなかった)が戻ってきましたrails 3.2.0)が失敗し始めました。
describe "#show" do
it "should be success" do
get :show, :plate => @vehicle.plate
response.should be_success
end
end
上げます
Site::VehiclesController#show should be success
ActionController::RoutingError:
No route matches {:plate=>"ABC1672", :controller=>"site/vehicles",
:action=>"show"}
そして、私がすべてのルート変数を完了したとしても
describe "#show" do
it "should be success" do
get :show, :plate => @vehicle.plate, :model => 'model',
:type => 'type', :brand => 'brand'
response.should be_success
end
end
私は得る:
# No route matches {:plate=>"ABC1586", :model=>"model", :type=>"type",
:brand=>"brand", :controller=>"site/vehicles", :action=>"show"}
アプリケーションは引き続き機能しますが、テストが失敗しているため、いつ停止するかわかりません。
誰かが同様の問題を解決/持っていましたか?
同様の質問で示唆されているように、「レールをアップグレードしない」ことでこのエラーを回避できることはわかっていますが、それが解決策ではないと思います。
Rails3.2.6またはRspec2.11.0にアップデートする際のルーティングエラー
前もって感謝します。
編集:
vehicle /:type/:brand/:model/:plate(.:format) site/vehicles#show {:plate=>/[a-z]{3}\d{4}/}