Hey Giles, auto_complete_for just relies on SomeClass.find. Here's a really simple couple of classes that will enable this behavior: class ObjectMap def self.all_classes classes = [] ObjectSpace.each_object {|o| classes << PresentedClass.new(o.name) if o.class == Class } classes.sort_by {|o| o.name } end def self.find(selector, find_options = {}) name = find_options[:conditions][1][1...-1] all_classes.find_all { |c| c.name.downcase.include?(name.downcase) } end end class PresentedClass attr_reader :name def initialize(name) @name = name end def [](val) val == 'name' ? @name : nil end end In your controller, just do auto_complete_for :object_map, :name and the view should contain text_field_with_auto_complete :object_map, :name This is of course just a crude implementation...but you get the idea. You can make any model searchable by providing a find method on the class. Then whatever objects you return must respond to both #some_attr and ['some_attr']. Pat