D.

二度押し防止機能をデフォルトで付ける。

昔からよくある 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