2010-12-20 41 views
1

看來了一堆我Rspec的我的應用程序移動到Rspec的2.3測試後,現在無法和Rails 3.0.3Rspec 2.3的Rails 3.0.3給一些控制器訪問問題?

一個例子是在這裏:

it "should not be able to access 'destroy'" do 
    delete :destroy 
    response.should redirect_to(signin_path) 
    flash[:error].should == "You must be signed in to view this page." 
end 

會給我的錯誤:

1) FriendshipsController when not logged in: should not be able to access 'destroy' 
Failure/Error: delete :destroy 
No route matches {:controller=>"friendships", :action=>"destroy"} 
# ./spec/controllers/friendships_controller_spec.rb:21:in `block (3 levels) in <top (required)>' 

在我的routes.rb文件,我已經規劃的資源爲這個控制器...

resources :friendships 

同爲

get :edit 
get :show 
put :update 

只有一個,似乎工作是

post :create 

但是,這我不能肯定100%。

有什麼想法?謝謝你的時間!

UPDATE:

get :new 

也工作和我的UserSessions控制器(Authlogic)似乎不存在這種問題的困擾。在我的UserSession控制器,模型或測試中,我沒有做過任何不同的事情。

回答

2

在規範,試圖通過調用方法:

delete :destroy, :id => "1" 
+0

是啊,工作。看起來Rails 3不能識別需要參數的HTML方法的路由,除非有參數。 – hahuang65 2010-12-21 03:12:21