forms - Rails 7 + Turbo : Turbo navigates away when receiving 422 unprocessable entity

标签 forms http ruby-on-rails-7 turbo rails7

根据各种消息来源,Rails 7 中表单验证失败的方法是使用状态 422 无法处理的实体进行响应。然而,在我的例子中,这导致 Turbo 发出另一个 GET 请求,这不太可能是预期的结果。

日志如下所示:

Started POST "/users/new" for 127.0.0.1 at 2022-06-16 17:27:48 +0200
...
TRANSACTION (0.3ms)  ROLLBACK
...
Rendered html template (Duration: 0.0ms | Allocations: 4)
Completed 422 Unprocessable Entity in 133ms (Views: 1.2ms | ActiveRecord: 10.9ms | Allocations: 54437)

Started GET "/users/new" for 127.0.0.1 at 2022-06-16 17:27:48 +0200
...

因此,从 Rails 的角度来看,一切似乎都很正常,因为服务器会响应所需的 422 状态代码。在浏览器中检查响应时,我看到带有错误消息的表单。然而,出于某种原因,Turbo 然后发出重定向到 /users/new 而不是让浏览器显示包含错误的表单。

更新:表单是使用 simple_form_for 生成的。

我如何找出 Turbo 重新加载页面的原因?

最好的, 卡尔山

最佳答案

当服务器以部分表单发布响应时,就会发生这种情况。返回一个完整的站点,包括 <html>等解决问题。

关于forms - Rails 7 + Turbo : Turbo navigates away when receiving 422 unprocessable entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72648355/

相关文章:

javascript - router.post 中的提交按钮后控制台中为 null

javascript - HTTP 请求的范围

jQuery 验证动态输入

javascript - 单击 Enter 并单击提交按钮时提交表单数据

php - 如何在 Laravel 中使用 PUT http 动词提交表单

ruby-on-rails - 如何在 Rails 7 和 importmaps 中使用 bootstrap-icons

ruby-on-rails - rails : Turbo Stream Broadcast not updating view

ruby-on-rails - Rails 7 升级后的 ActionController::UnknownFormat

asp.net - 不指定控件 ID 的优点?

c# - 如何从 HTTP 流中组装 pdf?