你已经了解了,客户的请求可能会使用不同的 HTTP 动作,或者叫 HTTP 方法。你可以针对这些方法去创建不同的路由 ... 我们再去创建一个处理使用 HTTP 的 POST 方法的路由 ..
这里我们只是先验证一下,post 类型的请求,还有怎么样在控制器里得到用户发送过来的数据 ...
可以使用 post 方法 ... 请求的地址可以是 /users ... 把这种请求交给 users 控制器的 create 方法去处理 ... 这种请求的目的主要是去创建一个新的资源 ... 我这里应该就是去创建一个新用户的请求 ...
然后打开 users 控制器,在里面添加一个 create 方法 .. post 请求会给应用发送过来一些数据,这些数据一般就是在表单里填写的内容,在控制器里,你可以接收到这些数据,然后把它们放到应用的数据库里保存起来 ..
这里我们还是先简单的验证一下,直接把发送过来的数据,再返还给客户 ... 用一下 render plain: 用 post 方法发送过来的数据会包含在 params 里面,我们可以 inspect 一下它 ...
下面我们可以再用一下 postman 这个工具 .. 请求的地址是 http://localhost:3000/users .. 使用的方法是 POST ..
再打开 body,在里面添加点数据,这些数据就是要发送给应用的东西,一般这些数据会来自我们给用户提供的一个表单 ... 先添加一个 user_name ... 它的值是 xiaoxue ...
假设用户在一个名字是 user_name 的文本框里输入了 xiaoxue ...
然后点一下 send ... 这就相当于是提交了表单 ... 应用响应回了一个错误页面 .. 提示 InvalidAuthenticityToken ,这是 rails 为了安全,在提交 post 请求的时候要带一个 token 的值,如果这个值跟 rails 期待的不一样,就会报这个错误 ...
我们可以暂时先关掉这个保护 ... 在 users 控制器里,用一下 protect_from_forgery except: :create ... 意思就是关掉对 create 方法的保护 ...
回到 postman ,再发送一下这个请求 ... 这回在响应的内容里面,你会看到用户发送给应用的 user_name 这个数据 ...
在真正的应用里,你可能希望把用户使用 post 方法发送过来的数据保存到数据库里 ...