首页 > 解决方案 > disable_with 使用渲染 js 时无法按预期工作:控制器中的“window.location=some_path”

问题描述

我目前正在使用 Rails 5.2.3、simple_form 和 slim,并且在 Rails 中提交表单时会自动添加 disable_with。但是 disable_with 不会等待 Javascript 完成渲染并在控制器返回 200 时启用提交按钮。

我正在寻找一个通用的解决方案,因为我在多个控制器中遇到了这个问题。

看法

 == simple_form_for some_model, remote: true do |f|
   = f.submit 'Save'

控制器:

def create
 # some class call and business logic
 render js: "window.location='#{path_to_redirect}'"
end

标签: javascriptruby-on-railsajaxrender

解决方案


原来这是一个错误,并已在 Rails 6 https://github.com/rails/rails/issues/29473中修复


推荐阅读