Method: ActiveRecord::AttributeMethods#respond_to?
- Defined in:
- activerecord/lib/active_record/attribute_methods.rb
#respond_to?(name, include_private = false) ⇒ Boolean
A Person object with a name attribute can ask person.respond_to?(:name), person.respond_to?(:name=), and person.respond_to?(:name?) 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
291 292 293 294 295 296 297 298 299 300 301 302 303 |
# File 'activerecord/lib/active_record/attribute_methods.rb', line 291 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. if @attributes if name = self.class.symbol_column_to_string(name.to_sym) return _has_attribute?(name) end end true end |