如何轨决定渲染PUT或POST的方法的形式?(How does rails decide to re

2019-06-26 21:13发布

Rails的产生子的形式,既可以通过取得动作和新动作呈现的页面呈现在页面上使用。 如果是前者窗体的方法设置为PUT,如果是后者表单的操作设置为POST。

如何轨决定使用哪种方法?

Answer 1:

如果传递给表单对象persisted? ,表单生成器知道你正在更新一个对象,因此将呈现一个PUT动作。 如果不坚持的话,就知道你正在创建一个新的对象,它会使用POST

<%= form_for @user do |f| %>
  <%= f.button %>
<% end %>

如果@user是一个新的记录, POST使用和按钮标签变成Create User ,否则PUT的使用和标签变得Update User 。 有没有什么更给它。



Answer 2:

形式编辑现有资源使用PUT ,创建一个新的资源利用形式POST 。 按照描述REST标准在这里 。

从轨道form_for助手代码:

action, method = object.respond_to?(:persisted?) && object.persisted? ? [:edit, :put] : [:new, :post]

persisted? ActiveRecord的声明为:

!(new_record? || destroyed?)


文章来源: How does rails decide to render a form with a method of PUT or POST?