gpt4 book ai didi

ruby-on-rails - 当我显式调用 `POST` 时,为什么我的 Rails 表单总是返回 `PUT` ?

转载 作者:行者123 更新时间:2023-12-01 19:34:22 24 4
gpt4 key购买 nike

这是我产生相同结果的示例:

# `enterprise_registration` is an already created/saved object

form_for enterprise_registration, method: :put do |format|; format; end
form_for enterprise_registration, url: logo_url, method: :put do |format|; format; end
form_for enterprise_registration, url: logo_url, html: {method: :put} do |format|; format; end

这将返回 method 属性设置为 POST 的表单。

您认为为什么会发生这种情况?我怎样才能使它成为一个 :put 请求?

更新

我现在了解到 Rails 表单嵌入了一个隐藏的 _method 并将其设置为 put,但我的表单仍然以 POST 形式传递这阻止了我的表单找到匹配的 PUT URL

最佳答案

form标签只有 GETPOST方法允许。另请参阅here以获得更多解释。然而Rails有他自己的方法来处理GET/POST/PUT/PATCH要求。如果您想检查您的任何 form定义为 form_forform_tag在 Rails 中,您会注意到表单的第一个元素是隐藏的 <div>其中包含两个隐藏字段:

<div style="display:none">
<input name="utf8" type="hidden" value="✓"><input name="_method" type="hidden" value="patch">
<input name="authenticity_token" type="hidden" value="9i5eRhwhx4NhvSxqIJm6cv9x6NSlY82hpNpfrpk/I0c=">
</div>

第一个字段名为 _method包含表单操作,它是 Controller 的请求类型。

关于ruby-on-rails - 当我显式调用 `POST` 时,为什么我的 Rails 表单总是返回 `PUT` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26852750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com