app/javascript/turbo/fetch_requests.js in turbo-rails-1.4.0 vs app/javascript/turbo/fetch_requests.js in turbo-rails-1.5.0
- old
+ new
@@ -33,10 +33,19 @@
}
}
function determineFormMethod(submitter) {
if (submitter instanceof HTMLButtonElement || submitter instanceof HTMLInputElement) {
- if (submitter.hasAttribute("formmethod")) {
+ // Rails 7 ActionView::Helpers::FormBuilder#button method has an override
+ // for formmethod if the button does not have name or value attributes
+ // set, which is the default. This means that if you use <%= f.button
+ // formmethod: :delete %>, it will generate a <button name="_method"
+ // value="delete" formmethod="post">. Therefore, if the submitter's name
+ // is already _method, it's value attribute already contains the desired
+ // method.
+ if (submitter.name === '_method') {
+ return submitter.value
+ } else if (submitter.hasAttribute("formmethod")) {
return submitter.formMethod
} else {
return null
}
} else {