如何通过重新加载页面来防止重新提交表单

时间:2013-12-12 16:00:42

标签: ruby-on-rails

当我提交表单并向我的模型添加一些记录时。

我通过

重定向到以下URI
    format.html { render 'index' }

http://localhost:3000/cart/submit_order?utf8=%E2%9C%93&customer_id=654&book_ids[]=42147&book_ids[]=42148&commit=%E6%96%B0%E5%A2%9E%E8%A8%82%E5%96%AE

但是,如果我重新加载页面。

它会再次将数据提交给我的模型。

如何防止这种行为?

由于

2 个答案:

答案 0 :(得分:1)

在控制器索引方法中,清除当前的params哈希值。这将有效地重置表单。

params是哈希值,因此您需要使用:params.delete :key

您没有向我们展示您正在捕获的表单值,因此您必须使用表单存储的任何键替换:key。

答案 1 :(得分:0)

问题是您是通过GET而不是POST发送表单数据,因此根据这些新信息,我建议改为重定向...

format.html { redirect_to { action: 'index' }, notice: 'your flash message here' }

可在此处找到更多信息:http://api.rubyonrails.org/classes/ActionController/Redirecting.html