def respond_to?(name, include_private = false)
      return false unless super

      # If the result is true then check for the select case.
      # For queries selecting a subset of columns, return false for unselected columns.
      # We check defined?(@attributes) not to issue warnings if called on objects that
      # have been allocated but not yet initialized.
      if defined?(@attributes)
        if name = self.class.symbol_column_to_string(name.to_sym)
          return has_attribute?(name)
        end
      end

      true
    end
def respond_to?(name, include_private = false)
      return false unless super

      # If the result is true then check for the select case.
      # For queries selecting a subset of columns, return false for unselected columns.
      # We check defined?(@attributes) not to issue warnings if called on objects that
      # have been allocated but not yet initialized.
      if defined?(@attributes)
        if name = self.class.symbol_column_to_string(name.to_sym)
          return has_attribute?(name)
        end
      end

      true
    end
A Person object with a name attribute can ask <tt>person.respond_to?(:name)</tt>,
 <tt>person.respond_to?(:name=)</tt>, and <tt>person.respond_to?(:name?)</tt>
 which will all return +true+. It also defines the attribute methods if they have
 not been generated.

   class Person < ActiveRecord::Base
   end

   person = Person.new
   person.respond_to?(:name)    # => true
   person.respond_to?(:name=)   # => true
   person.respond_to?(:name?)   # => true
   person.respond_to?('age')    # => true
   person.respond_to?('age=')   # => true
   person.respond_to?('age?')   # => true
   person.respond_to?(:nothing) # => false