我通过迈克尔·哈特尔的on Rails的优秀教程的工作,但我在第11章Ruby on Rails的教程,第11章练习7 - 打破我的RSpec的测试
这项工作是具有与运动7烦恼:
Add a nested route so that /users/1/microposts shows all the microposts for user 1. (You will also have to add a Microposts controller index action and corresponding view.)
我已经成功地做到了这一点,通过改变我的routes.rb
文件阅读:
resources :users do
resources :microposts, :only => [:create, :destroy]
end
我能够成功调用/用户/ 1/AB从微观柱rowser。但是,microposts_controller_spec.rb中的大多数测试现在都被破坏了。运行自动测试时收到“无路线匹配”错误。例如,第一个测试,它只是写着:
it "should deny access to 'create'" do
post :create
response.should redirect_to(signin_path)
end
现在产生以下错误:
1) MicropostsController access control should deny access to 'create' Failure/Error: post :create No route matches {:controller=>"microposts", :action=>"create"}
当我检查rake routes
,我觉得这是项:
user_microposts POST /users/:user_id/microposts(.:format) {:action=>"create", :controller=>"microposts"}
这表明路线确实存在。
在完成本教程时是否有其他人遇到此问题?一旦我引入嵌套路线,是否需要在spec文件中进行更改? Rspec是否使用嵌套路线?
感谢
感谢您的回答瑞安。我以为我尝试了这一点,但显然我没有这么做 - 你的解决方案迄今为止工作。 – Kevin 2011-01-30 21:57:49