我有條不紊地通過Agile Web Development with Rails書籍工作。到目前爲止,我沒有遇到任何問題,直到我遇到使用會話控制器註銷的開發。我只是試圖讓destroy方法在會話控制器中工作。以下是我有:Rails 3在會話中註銷路由控制器
sessions_controller.rb
def destroy
session[:user_id] = nil
redirect_to store_url, :notice => "Logged out"
end
的routes.rb
controller :sessions do
get 'login' => :new
post 'login' => :create
delete 'logout' => :destroy
end
我重啓服務器並可以登錄使用本地主機:3000 /登錄,但如果我嘗試本地主機:3000 /註銷我得到以下路由錯誤:沒有路由匹配「/註銷」
任何幫助非常感謝,因爲我一直在挖掘通過網絡試圖找到答案。
您可以顯示註銷鏈接的代碼在你的看法呢?也許它缺少':method =>:delete'? – Mischa 2011-05-31 06:09:21
奧斯汀是正確的。當您直接在瀏覽器中輸入'/ logout'時,您正在執行'get'請求,而預計將發出'delete'請求。如果您希望通過在瀏覽器的地址欄中輸入'/ logout'來註銷,則必須將'delete'更改爲'get'。 – Mischa 2011-05-31 06:32:32