我通過邁克爾·哈特爾的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