二度押し防止機能をデフォルトで付ける。
昔からよくある Form が Submit された瞬間にボタンを disable にするというアレ。これをデフォルトの挙動にする。
config/initializers/submit_with_disable.rb
# -*- encoding: utf-8 -*- module ActionView module Helpers module FormTagHelper alias_method :original_submit_tag, :submit_tag def submit_tag(value=nil, options={}) options[:disable_with] = '処理中...' unless options[:disable_with] original_submit_tag(value, options) end end end end
これですべての送信ボタンに標準で :disable_with が付く。カスタマイズしたいときはそのビューだけ :disable_with を明示的に指定すれば良い。
このハックは便利すぎてすべての Rails アプリにデフォで組み込みたいレベル。ただ jquery-ujs を利用していると :disable_with が効かないという情報もあるので注意が必要だ。
http://d.hatena.ne.jp/holysugar/20101124/p1
参考
これはさんざん既出な情報で、基本的に以下の記事をそのまま参考にした。
http://pinzolog.blogspot.com/2011/06/submit-disablewith.html