Why doesn't AR find method cause a call to obj.initialize?

initialize is called with Contact.new, Contact.find constructs object using Contact.instantiate. You can probably do this:

class Contact
class << self
def instantiate_with_contact_preference(record)

  object = instantiate_without_contact_preference(record)
  # Do whatever you want with the object here
  object
end

alias_method_chain :instantiate, :contact_preference

end
end

-Jonathan