"没有路线匹配"错误?

pic*_*rdo 18 testing rspec routes ruby-on-rails-3

我是新的Rspec,刚开始在Rails 3上生成一个新的控制器.它默认生成一些Rspec测试.我有一个关于如何使它们通过的问题.就目前而言,我在终端上看到了这个测试"

1)BuildingsController GET'show'应该是成功的

 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)>'
Run Code Online (Sandbox Code Playgroud)

但是,我不明白为什么它会出现,因为我已经创建了这条路线("资源:建筑物"),我跑了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
Run Code Online (Sandbox Code Playgroud)

Hei*_*kki 38

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

路线抱怨它,因为:id不是可选的.

  • 如果你的路线中必须明确id,你可能会遇到一个问题:`get:show,:building_id => @ building.id` (4认同)