2011-01-07 13 views
18

私は新しいRspecであり、Rails 3で新しいコントローラを生成することから始めました。デフォルトでいくつかのRspecテストが生成されています。私はそれらを通過させる方法について質問があります。現状では、私は「経路が一致しません」というエラーはありますか?

「私の端末でこのテストを参照してください

1)BuildingsController GET 『ショー』 は、それがために来ている理由しかし、私は理解していない

Failure/Error: get 'show' 
No route matches {:controller=>"buildings", :action=>"show"} 
# ./spec/controllers/buildings_controller_spec.rb:17:in `block (3 levels) in <top (required)>' 

成功する必要があります私はすでに(「リソース:ビル」)このルートが作成されています。、と私はrake routesを実行し、それがありますことを確認しました

建物GETの/buildings/:id(.:format){:アクション=>「ショー」 、 :コントローラー=>「建物」}

このパスを行うには何が必要ですか?ここではテストが道である:

describe "GET 'show'" do 
    it "should be successful" do 
     get 'show' 
     response.should be_success 
    end 
    end 

答えて

38

あなたは、既存の建物のIDを渡す必要があります::idはオプションではありませんので、get :show, :id => @building.id

ルートはそれについて文句を言います。

+4

あなたのルートにidが明示的に含まれている必要があります: 'get:show、:building_id => @ building.id' – you786

関連する問題