我得到這個錯誤:邁克爾·哈特爾教程,沒有路由匹配
Failures:
1) UsersController DELETE 'destroy' should sign a user out
Failure/Error: delete :destroy ActionController::UrlGenerationError: No route matches {:controller=>"users", :action=>"destroy"}
我的測試是:
it "should sign a user out" do test_sign_in(Factory(:user)) delete :destroy expect(controller).to_not be_signed_in expect(response).to redirect_to(root_path) end
的test_sign_in功能是spec幫手:
def test_sign_in(user)
controller.sign_in(user)
end
我耙路線:
Prefix Verb URI Pattern Controller#Action
sessions_new GET /sessions/new(.:format) sessions#new
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PATCH /users/:id(.:format) users#update
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
sessions POST /sessions(.:format) sessions#create
new_session GET /sessions/new(.:format) sessions#new
session DELETE /sessions/:id(.:format) sessions#destroy
root GET / pages#home
contact GET /contact(.:format) pages#contact
about GET /about(.:format) pages#about
help GET /help(.:format) pages#help
signup GET /signup(.:format) users#new
signin GET /signin(.:format) sessions#new
signout GET /signout(.:format) sessions#destroy
pages_home GET /pages/home(.:format) pages#home
任何人都知道我該如何解決這個錯誤?
我做到了。我收到以下錯誤:1)UsersController刪除'銷燬'應簽署用戶出 失敗/錯誤:刪除:銷燬,ID:user.id AbstractController :: ActionNotFound: **行動'銷燬'不能找到UsersController **你能幫我這個嗎? – madam
其實我正在看我的路線,我按照教程,我認爲**這**是我嘗試使用的路線:註銷GET /signout(.:format)會話#銷燬 – madam
你應該是能夠使用:'get:signout'在這種情況下。 UsersController找不到'The action'destroy'錯誤,意味着你的'UsersController'裏面沒有'destroy'的操作。這很有道理,對吧?因爲你的'destroy'動作存在於'SessionsController'內部,所以你應該在'SessionsController'規範中測試註銷功能,而不是'UsersController'。希望這有助於! –