我是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)>'



但是,我不明白为什么会这样,因为我已经创建了这条路线(“ resources:buildings”),并且我运行了rake routes并确保它在那里。


  建筑GET /buildings/:id(.:format){:action =>“ show”,:controller =>“ buildings”}


通过此考试需要什么?顺便说一下,这是测试:

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

最佳答案

您需要传递现有建筑物的ID:get :show, :id => @building.id

路由抱怨它,因为:id不是可选的。

10-02 05:29