请帮帮我
我创建了一个控制器'users'
,其中包含一个用于登录用户的表单'login'
,我已将routes.rb
更改为get user/login
更改为post user/login
现在,当我转到localhost:3000/users/login
时出现:
Routing Error
No route matches [GET] "/users/login"
Try running rake routes for more information on available routes.
请该如何处理该页面,问题是因为我在路由器中将'get'更改为'post',还有更多我应该添加的内容吗?
答案 0 :(得分:1)
当您在浏览器中转到该网址时,请求的类型为GET
- 但正如您所说,现在没有此请求的路由。
POST
路由非常有用 - 使用简单提交(将method
属性指定为POST
)或AJAX请求。
答案 1 :(得分:0)
您可以在routes.rb中使用它们:
get user/login
post user/login
这意味着控制器将识别使用这两种方法发出的请求。由您的控制器逻辑来排序。获取通常用于呈现登录表单; post会收到用户的用户名和密码,对他/她进行身份验证,然后重定向到页面以便成功登录(如果需要,可以不成功)。
我可能会说这个引起一些争议,但如果你是初学者而且你正在寻找一个带有用户身份验证的“严肃”网站,你可能不想留下任何机会,而是使用像设计一样的宝石(https://github.com/plataformatec/devise)为你做这件事。有些人会说最好先从头开始学习如何做,而且也有一些意义。