LoginEngine + UserStamp 成功その2?

User expected, got Stringというメッセージの原因は、scaffoldで生成したビューのリクエストにcreated_byとupdated_byがヌル文字列で含まれていたからでした。他にないんだからログ見てすぐ気付くべきだよね・・・。
で、いちいちモデルの方に

def updated_by=(value) 
  value = nil if value.nil? || (value.respond_to?(:empty?) && value.empty?)
  self[:updated_by] = value
end

みたいなことを書きたくなかったので、無理やりやることにした。

module ActiveRecord
  class Base
    @@method_updating = false

    def self.method_added( method_name )
      if [:created_by=, :updated_by=].include?(method_name)
        return if @@method_updating
        @@method_updating = true
        begin
          original_method_name = "original_" + method_name.to_s
          filtered_method_name = "filtered_" + method_name.to_s
          alias_method(original_method_name, method_name);
          define_method(filtered_method_name){ |value|
            value = nil if value.nil? || (value.respond_to?(:empty?) && value.empty?)
            self.send(original_method_name, value)
          }
          alias_method(method_name, filtered_method_name);
        ensure
          @@method_updating = false
        end
      end
    end
  end
end

無理があるにも程があるだろ、と突っ込みたいけど、どうしたらいいのかわかんないっすー。どうやったらきれいに解決できるのー?