单击后退按钮Rails时触发验证

时间:2011-03-10 11:41:01

标签: ruby-on-rails

用户提交表单,所有信息均有效。

我刚刚发现当他们点击后退按钮时会触发以下验证。

validates_format_of :email,
             :with => /^[A-Z0-9._%-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i,
             :message => "should be something like youremail@something.com"

为什么会发生这种情况?如何阻止它被触发?

1 个答案:

答案 0 :(得分:1)

如果用户重新提交表单 - 浏览器会向其发出警告,并且当您在浏览器中返回POST请求时总是会发生这种情况 - 您无能为力。这就是浏览器的工作方式。此外,为了清晰的语言,触发验证并不是“回头”。这是您指定验证的模型上的操作,可能是before_save。所以有一个model.save操作正在进行,并且可能会触发(不知道你的代码,你可以在控制器的任何地方写@somemodel.save,但这是标准的)重复的POST操作。最终来自用户。一个人不应该“回”到一个已发布的表单,无论后端技术如何,它都在整个互联网上都是一样的。