为什么rails scaffold在创建,更新和销毁操作中使用respond_to块?

时间:2015-05-06 22:08:03

标签: ruby-on-rails

根据我的理解,这些操作通常在提交表单后触发。我无法想象为什么表单生成j​​son的任何原因,换句话说,(假设一个假设的控制器被命名为'UsersController')我无法想象表单何时或如何将我的浏览器带到:

localhost:3000/users.json

不会自动发布请求将用户带到:

localhost:3000/users

...因此自动转到html?而且,如果他们到达这里,请:

localhost:3000/users

并输入:

localhost:3000/users.json

这不会是一个回到index.json的GET请求吗?因此回到索引动作?...通过GET请求(而不是创建动作,通过POST)在该特定动作中渲染json?

我很困惑,无法理解任何人最终会如何从POST请求中结束users.json,因此我无法想象为什么呈现json的respond_to块在这些操作中有意义。我错过了什么?

1 个答案:

答案 0 :(得分:1)

Rails假设控制器操作也可以作为API访问,而不仅仅是通过浏览器访问。在这种情况下,以不同方式响应这些请求而不是将客户端(浏览器)重定向到索引或显示操作是有意义的。

从API客户端创建资源时,将用户重定向到索引或显示操作可能没有意义,而不是仅响应创建资源的客户端(或不响应)。同样适用于更新和销毁操作。