0

请帮助我我已经创建了一个控制器'users',其中包含用于登录用户的表单的视图'login',我已将更改routes.rb更改get user/loginpost 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”,还有一些我应该添加的东西吗?

4

2 回答 2

1

当您在浏览器中访问该 url 时,请求的类型是GET- 但是,正如您所说,现在这个请求没有路由。

POST当您在此页面上实际提交表单时,路由将很有用 - 使用简单提交(将method属性指定为POST)或 AJAX 请求。

于 2012-12-25T22:10:14.843 回答
1

您可以在 routes.rb 中使用两者:

get user/login
post user/login

这意味着控制器将识别使用这两种方法发出的请求。由您的控制器逻辑来解决它。get 通常用于呈现登录表单;post 将接收用户的用户名和密码,对他/她进行身份验证,然后重定向到成功登录的页面(或不成功,如有必要)。

我这样说可能会引发一些争议,但是如果您是初学者,并且希望通过用户身份验证制作一个“严肃”的网站,您可能不想留下任何机会,而是使用像设计这样的宝石(https: //github.com/plataformatec/devise) 为您完成。有人会说,最好先从头开始学习,这也是有一定道理的。

于 2012-12-25T23:58:24.093 回答