“No route matches” error?

丶灬走出姿态 提交于 2019-12-08 14:39:56

问题


I am new Rspec and just started by generating a new controller on Rails 3. It generates some Rspec tests by default. I have a question about how to make them pass though. As it stands, I see this test in my terminal"

1) BuildingsController GET 'show' should be successful

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

However, I don't understand why it's coming up because I already have this route created ("resources :buildings"), and I ran rake routes and made sure it's there.

building GET /buildings/:id(.:format) {:action=>"show", :controller=>"buildings"}

What is necessary to make this pass? Here is the test by the way:

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

回答1:


You need to pass id of existing building: get :show, :id => @building.id

Routes complain about it because :id isn't optional.



来源:https://stackoverflow.com/questions/4628103/no-route-matches-error

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!