2012-12-25 40 views
0

請幫我 我有一個表單進行登錄的用戶創建了一個控制器'users'以期'login',我已經改變了routes.rb改變get user/loginpost user/login如何使用「後」在routes.rb中

現在,當我去localhost:3000/users/login出現:

Routing Error 

No route matches [GET] "https://stackoverflow.com/users/login" 
Try running rake routes for more information on available routes. 

請又該做的工作是網頁,這個問題是因爲我已經在路由器改變了「讓」到「後」,還有更多的東西,我應該補充?

+0

這篇文章完全符合我們在SO期待的內容。不要濫用你的低劣特權和責任。 – HenryRootTwo

回答

1

當您剛剛訪問瀏覽器中的該URL時,請求類型爲GET - 但正如您所說,現在沒有該請求的路由。

POST如果您真的在此頁面上提交表單 - 通過簡單提交(指定method屬性爲POST)或AJAX請求,此路線將非常有用。

+0

謝謝,但我該怎麼辦?請 – dexter00x

+0

這不取決於你想做什麼?一種可能的方式是爲GET操作創建單獨的路線。 – raina77ow

+0

轉換爲用於登錄或註冊的表單,我應該使用'get'還是'post'?請 – dexter00x

0

您既可以在routes.rb中使用:

get user/login 
post user/login 

這意味着控制器將認識到使用這兩種方法提出了要求。您可以根據您的控制器邏輯對其進行分類。 get通常用於呈現登錄表單; post會收到用戶的用戶名和密碼,對他/她進行身份驗證,然後重定向到成功登錄的頁面(如果有必要,則不成功)。

我可能會引發一些爭議,但如果您是初學者,並且您希望通過用戶身份驗證製作一個「嚴肅」的網站,您可能不想留下任何可能的東西,而是使用像設計(https://github.com/plataformatec/devise)爲你做。有人會說,最好從頭開始學習如何從頭開始,而且這也有一些意義。