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 {