Rails 5.1.2 - form_with在html中没有显示data-remote ="true"

Vor*_*ane 8 forms ajax ruby-on-rails

Rails 5.1.2:

我正在尝试使用form_with根据Rails文档此GitHub线程创建一个AJAX表单.

这段代码:

<%= form_with url: '/' do |f| %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

实际上这段代码:

<%= form_with url: '/', remote: true do |f| %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

都产生这个HTML:

<form action="/" accept-charset="UTF-8" method="post">
  <input name="utf8" type="hidden" value="..." />
  <input type="hidden" name="authenticity_token" value="..." />
</form>
Run Code Online (Sandbox Code Playgroud)

为什么没有data-remote="true"出现在HTML中,因为我发布的第一个链接表明它应该,以及如何让它出现?

小智 12

我在使用 Rails 5.1.4 应用程序时遇到了同样的问题。使用local: false修复了问题。

<%= form_with url: '/', local: false do |f| %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

  • 这个问题出现在 Rails 6 中,并且同样的解决方案修复了它。 (3认同)

小智 7

默认值data-remote由option配置Rails.application.config.action_view.form_with_generates_remote_forms.默认情况下,在Rails 5中,此选项为true.通过所有项目搜索,似乎您从Rails 4或smth迁移.否则覆盖此选项.

  • 我在 Rails 5.1.6 的项目中找不到“form_with_generates_remote_forms”(包括“config/initializers”或在 Rails 控制台中检查上述选项)。关于它可能在哪里或者变量是否已被重命名的任何提示? (2认同)