2014-09-19 17 views
0

我正在工作一個基於較舊的軌道(不知道,如果這是問題)的基本軌道小型博客教程。我正在嘗試實現用戶註銷(終止用戶會話)。Rails4的方法::刪除錯誤的路線到[GET]

我有這個在我的表格:

<%= link_to 'Logout', session_path(current_user), method: :delete %> 

和我耙路線表看起來不錯:

session DELETE /sessions/:id(.:format)   sessions#destroy 

但是當我測試本地服務器上,通過點擊「註銷」,我被給出這個錯誤:

No route matches [GET] "/sessions/1" 

它確實不應該是一個[GET]請求。我檢查了我包含了所有必要的javascript行和捆綁。什麼地方出了錯?

p.s.這裏是我的回購:https://github.com/lukexuanliu/CornellBlog

p.p.s.我的問題與這個非常相似:Routing Error No route matches [GET] "/microposts/304 - Deleting a Micropost - Michael Hartl's railstutorial.org Chapter 11

但他們的解決方案對我不起作用。此外,我的引導CSS是有點搞砸了...不知道,如果這導致了這個問題

+0

在你的'routes.rb'中你有'resources:sessions,只有:[:new,:create,:destroy]',但是如果你將'current_user'傳遞給''session_path''不應該你的路由是嵌套的:'資源:用戶做資源:會話,只:[:new,:create,:destroy] end'? – mmichael 2014-09-19 01:06:53

+0

如果我只有一個用戶進行測試,session_path(current_user)會被轉換爲/ sessions/1,這是因爲我沒有完全理解。我跟着教程,路線表看起來很好。 – user3527137 2014-09-19 02:05:08

+0

奇怪。我克隆了你的回購協議,除了稍微調整你的導航欄,以便我可以看到鏈接,你的註銷鏈接似乎工作。 – 2014-09-19 02:39:07

回答

0

我想我找到了問題。當我說「通過點擊註銷」,我實際上拉出了html代碼(使用檢查元素)點擊實際代碼「session/1」,這將錯誤地發出[GET]請求。當我清理我的樣式表(原來是在bootstrap3 api上運行的bootstrap2代碼的不兼容性)並顯示Logout按鈕點擊時,它工作正常。好奇。