升级Rails 5.1至5.2后form_with默认remote:true失效,如何恢复?
如何让Rails 5.2的form_with恢复默认remote: true行为?
嗨,这个问题我碰到好多次了——Rails 5.2确实调整了form_with的默认行为,把原本默认开启的remote: true给关掉了。不过要恢复这个特性非常简单,只需要添加一行全局配置就行:
- 推荐的做法是在
config/initializers目录下新建一个初始化文件(比如命名为form_with_remote_default.rb),这样配置更清晰,也方便后续维护。 - 在这个新文件里加入以下代码:
Rails.application.config.action_view.form_with_generates_remote_forms = true
当然,你也可以直接把这行代码加到config/application.rb的config块里,效果是一样的。
设置完成后,所有用form_with创建的表单都会默认带上remote: true的特性,和你在Rails 5.1里的使用体验完全一致。如果某个特定表单不需要远程提交,你只需要手动指定remote: false就能覆盖全局配置了。
内容的提问来源于stack exchange,提问作者Nicolas Maloeuvre
相关产品推荐
相关产品推荐

