Ruby on rails rails如何决定使用PUT或POST方法呈现表单?
Rails生成一个可在get操作呈现的页面和新操作呈现的页面上使用的部分表单。如果是前者,则窗体的方法设置为PUT;如果是后者,则窗体的操作设置为POSTRuby on rails rails如何决定使用PUT或POST方法呈现表单?,ruby-on-rails,ruby-on-rails-3,forms,rest,form-helpers,Ruby On Rails,Ruby On Rails 3,Forms,Rest,Form Helpers,Rails生成一个可在get操作呈现的页面和新操作呈现的页面上使用的部分表单。如果是前者,则窗体的方法设置为PUT;如果是后者,则窗体的操作设置为POST rails如何决定使用哪种方法?编辑现有资源的表单使用PUT,创建新资源的表单使用POST。按照所述的休息标准 从rails表单_中获取帮助程序代码: action, method = object.respond_to?(:persisted?) && object.persisted? ? [:edit, :put] :
rails如何决定使用哪种方法?编辑现有资源的表单使用
PUT
,创建新资源的表单使用POST
。按照所述的休息标准
从rails表单_中获取
帮助程序代码:
action, method = object.respond_to?(:persisted?) && object.persisted? ? [:edit, :put] : [:new, :post]
ActiveRecord的持久化?
声明为:
!(new_record? || destroyed?)
如果传递给表单的对象为,则表单生成器知道您正在更新对象,因此将呈现
PUT
操作。如果它没有被持久化,那么它知道您正在创建一个新对象,它将使用POST
<%= form_for @user do |f| %>
<%= f.button %>
<% end %>
如果
@user
是新记录,则使用POST
,按钮标签变为Create user
,否则使用PUT
,标签变为Update user
。我的问题是Rails如何决定在表单上设置哪个方法。用什么来决定?更新,这是你想要的吗?谢谢。恐怕@hgmnz比你还厉害。谢谢。我最终使用created_at,因为我使用客户端js访问我的模型,而@model被gon公开为散列。在Rails 6中,有一个隐藏的输入\u方法
,其值为补丁
,用于更新操作<代码>