edge badge
Methods
D
Instance Protected methods
define_method_attribute(name)
# File activerecord/lib/active_record/attribute_methods/read.rb, line 39
        def define_method_attribute(name)
          safe_name = name.unpack('h*'.freeze).first
          temp_method = "__temp__#{safe_name}"

          ActiveRecord::AttributeMethods::AttrNames.set_name_cache safe_name, name

          generated_attribute_methods.module_eval "            def #{temp_method}
              name = ::ActiveRecord::AttributeMethods::AttrNames::ATTR_#{safe_name}
              _read_attribute(name) { |n| missing_attribute(n, caller) }
            end
", __FILE__, __LINE__ + 1

          generated_attribute_methods.module_eval do
            alias_method name, temp_method
            undef_method temp_method
          end
        end