class ActiveRecord::Base def method_missing_with_singleton_validations(m, *args, &block) if (match = /^(validates_(.*))$/.match(m.to_s)) && self.class.respond_to?(match[0]) (class << self; self; end).send(match[0],*args,&block) else method_missing_without_singleton_validations(m,*args,&block) end end alias_method_chain :method_missing, :singleton_validations end module ActiveSupport::Callbacks def run_callbacks(kind, options = {}, &block) y = self.class.send("#{kind}_callback_chain").run(self, options, &block) x = (class << self; self; end).send("#{kind}_callback_chain").run(self, options, &block) x.concat(y) end end