【问题标题】:Rails controller method executionRails 控制器方法执行
【发布时间】:2012-11-02 11:48:57
【问题描述】:

假设我有一个 Rails 控制器方法,它在用户提交表单时执行。现在,用户提交表单,当方法运行时(并且没有向用户呈现下一页),用户点击“刷新”。会发生什么?该方法会停止运行并重新启动,还是会有另一个线程再次运行该方法?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 controller refresh


    【解决方案1】:

    我必须自己找到答案,这就是我发现的(使用 chrome 检查器上的网络选项卡)

    浏览器发送以下请求:

    • GET /profile/123/edit(用户打开编辑表单)
    • PUT /profile/123(用户提交表单)

    用户点击刷新,导致:

    • GET /profile/123/edit

    换句话说,它不会重新提交表单,而是重新打开编辑表单。

    现在...如果他们没有点击刷新,而是第二次点击提交,那将发送第二次

    • PUT /profile/123

    这将再次调用您的控制器方法。

    如果这是一个问题,您可能需要添加一些逻辑来忽略或以其他方式处理后续提交(简单状态机?)。还记得那些电子商务网站在你买东西后会收到“不要点击提交两次”之类的消息的日子......他们没有那种逻辑:)

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 2018-06-14
      • 2012-08-14
      • 1970-01-01
      • 2014-04-12
      • 1970-01-01
      • 2015-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多