2013-12-12 102 views
0

當我提交表單並向我的模型添加一些記錄時。如何防止通過重新載入頁面重新提交表單

我通過

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 

重定向到下面的URI但是,如果我再重新加載頁面。

它會再次將數據提交給我的模型。

如何防止這種行爲?

謝謝

回答

1

在你的控制器索引方法中,清除當前的參數散列。這將有效地重置表單。

params爲散,所以你需要使用:params.delete :key

你沒有告訴我們什麼形式值你捕捉,所以你不得不更換:與任何鍵鍵(S )您的表單正在存儲。

+0

對不起。你的意思是在索引方法中加入'params.clear'?但它不起作用。 – newBike

+0

更新澄清。 – Donovan

+0

它似乎不起作用。 'HTTP://本地主機:3000 /購物/ submit_order UTF8 =%E2%9C%93&book_ids [] = 42157&提交=%E6%96%B0%E5%A2%9E%E8%A8%82%E5%96%AE? '提交後我的網址是上面的。然後我重新加載它提交的頁面。 – newBike

0

問題是你要通過GET發送的表單數據,而不是帖子,所以在此基礎上的新的信息,我建議改爲重定向,而不是...

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

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

+0

'format.html {redirect_to action:「index」}'的作品。但是丟失'flash'消息'flash [:notice] =「~~~」'。有任何想法嗎? – newBike

+0

更新了答案。 – Donovan

相關問題