Rails2.3でerror_message_onのi18n対応
なぜかRails2.3のerror_message_onはi18n対応されてないのでしてみました.
対応前 before
error_message_on(:user, :name) => "を入力してください。"
対応後 after
error_message_on(:user, :name) => "名前を入力してください。"
コード
プラグインなり、初期化時なり適当な(rails起動時に一度だけ実行する)ところで読み込ませてください.
module ActionView module Helpers module ActiveRecordHelper # エラーメッセージの翻訳 alias_method :error_message_on_without_translate, :error_message_on def error_message_on(object, method, *args ) obj = instance_variable_get("@#{object}") options = args.extract_options! options.reverse_merge!(:prepend_text => obj.class.human_attribute_name(method.to_s)) if args.empty? args = options else args.push options end error_message_on_without_translate(object, method, args) end end end end