Ruby on rails 轨道5.2:带“要求”的“U”形;本地:假“;对于AJAX请求?

Ruby on rails 轨道5.2:带“要求”的“U”形;本地:假“;对于AJAX请求?,ruby-on-rails,ajax,ruby-on-rails-5.2,Ruby On Rails,Ajax,Ruby On Rails 5.2,我刚从Rails 5.1升级到5.2。我有一个应用程序,已经在生产几个月没有问题良好的测试覆盖率 我已经在Rails 5.1中使用了几个月的form_和。form_with的默认值是默认情况下所有表单都是AJAX,并且必须指定local:true,才能有正常的HTTP POST请求 在升级到Rails 5.2之后(我遵循了升级指南),我遇到了这样一种情况:我的一些表单不再作为AJAX请求提交,除非我特别向它们添加local:false 滚动到代码段的末尾,查看其他有效的local:false。代

我刚从Rails 5.1升级到5.2。我有一个应用程序,已经在生产几个月没有问题良好的测试覆盖率

我已经在Rails 5.1中使用了几个月的
form_和
form_with
的默认值是默认情况下所有表单都是AJAX,并且必须指定
local:true
,才能有正常的HTTP POST请求

在升级到Rails 5.2之后(我遵循了升级指南),我遇到了这样一种情况:我的一些表单不再作为AJAX请求提交,除非我特别向它们添加
local:false

滚动到代码段的末尾,查看其他有效的
local:false
。代码直接从应用程序中获取,无需修改

# This will not work and submits a normal HTTP POST
<%= form_with model: @team_member_type, url: [:settings, @team_member_type], class: "dialog-container", id: "team_member_type-dialog", data: { closable: "false" } do |form| %>

# This will work and submits an AJAX request
<%= form_with model: @team_member_type, url: [:settings, @team_member_type], class: "dialog-container", id: "team_member_type-dialog", data: { closable: "false" }, local: true do |form| %>
同样,我所做的唯一更改是手动将
local:false
添加到表单中,以强制它是远程的

文档说
local:false
默认值,所以我不必手动指定它

我错过了什么

注意,带有
remote:true
的AJAX链接工作正常;默认情况下,只有表单没有提交AJAX

更新

做一些挖掘,当我升级到5.1时,它看起来可能是一个问题。我找不到
config/initializers/new_framework_defaults_5_1.rb
文件,该文件将默认标志设置为
form_with
远程。因为在我升级到5.2时该文件不存在,所以它没有覆盖那些新的默认配置。如果我确认这确实是问题所在,我将更新此问题

更新2


是的,验证问题是我没有复制这些配置值的
config/new\u framework\u defaults\u 5\u 1.rb
文件。

问题是我没有从Rails 5.1中复制新默认值的升级配置文件。Rails最终在5.1(或5.2?)中删除了该版本,并使用
config.load\u默认版本
,将所有升级的配置加载到指定版本


一次升级一个版本的危险之一是,在我从5.1升级到5.2之间,情况发生了变化!我建议提前阅读所有版本的所有发行说明,而不是一次只阅读一个。

从Rails 5.1升级到Rails 5.2后,我也遇到了同样的问题

ActionController::UnknownFormat request.formats:[“text/html”] Controlle缺少此请求格式和变体的模板

带有submit的表单_无法远程工作。它仅适用于local:false参数

以下是我的
config/application.rb
文件中的相关行:

module RailsStarterKit
  class Application < Rails::Application
    config.load_defaults 5.2
模块导轨启动套件
类应用程序
module RailsStarterKit
  class Application < Rails::Application
    config.load_defaults 5.2