Traditionally we'd Post then redirect to stop double submission:<div><br></div><div><a href="http://en.m.wikipedia.org/wiki/Post/Redirect/Get">http://en.m.wikipedia.org/wiki/Post/Redirect/Get</a><br><div><br></div><div>That of course assumes your browser is redrawing which I suspect might not be the case nowadays. </div><div><br></div><div><span></span>In a rich client app you could use the "nonce" alternative linked at the bottom which sounds similar to the previous suggestions.<br><br>On Friday, April 24, 2015, Riccardo Tacconi <<a href="mailto:rtacconi@gmail.com">rtacconi@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>You could put a hash in  a hidden field, when Rails receives the first submission you save it in the session with a timestamp. Every time you receive new submission you check if the has has been already used in the last few seconds, if it was already used you trigger a validation error. You will have to clean stale submission from the session. Otherwise you could put the has in the DB.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 24 April 2015 at 09:43, Andrew Stewart <span dir="ltr"><<a href="javascript:_e(%7B%7D,'cvml','boss@airbladesoftware.com');" target="_blank">boss@airbladesoftware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello LRUG!<br>
<br>
Some people using my Rails app are speedy double-clickers of form submit buttons.  While I admire their alacrity I would like Rails to ignore the duplicate submissions.<br>
<br>
Disabling the submit button client-side heads off the quick-but-not-lightning double-clickers.  However a special few still outpace the browser so I am after a server-side solution.<br>
<br>
I imagine each form submission would have a unique token and the server would ignore or raise an error for submissions with duplicate tokens within a rolling window of, say, a few seconds.  Perhaps this would be handled in a Rack middleware.<br>
<br>
Does such a thing already exist?  I know this is an old problem but I can't seem to find any decent solutions.<br>
<br>
Thanks in advance!<br>
<br>
Yours,<br>
<br>
Andy Stewart<br>
_______________________________________________<br>
Chat mailing list<br>
<a href="javascript:_e(%7B%7D,'cvml','Chat@lists.lrug.org');" target="_blank">Chat@lists.lrug.org</a><br>
Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" target="_blank">http://lists.lrug.org/pipermail/chat-lrug.org</a><br>
Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/options.cgi/chat-lrug.org</a><br>
List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div><div dir="ltr">Riccardo Tacconi<br><br><a href="http://github.com/rtacconi" target="_blank">http://github.com/rtacconi</a><br><a href="http://twitter.com/rtacconi" target="_blank">http://twitter.com/rtacconi</a></div></div>
</div>
</blockquote></div></div><br><br>-- <br>Sent from Gmail Mobile<br>