diff options
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/attribute_methods.rb | 10 | ||||
-rw-r--r-- | activerecord/lib/active_record/attribute_methods/read.rb | 11 |
2 files changed, 11 insertions, 10 deletions
diff --git a/activerecord/lib/active_record/attribute_methods.rb b/activerecord/lib/active_record/attribute_methods.rb index 8686db1793..e7f3f4cba5 100644 --- a/activerecord/lib/active_record/attribute_methods.rb +++ b/activerecord/lib/active_record/attribute_methods.rb @@ -4,13 +4,6 @@ module ActiveRecord module AttributeMethods #:nodoc: extend ActiveSupport::Concern - ATTRIBUTE_TYPES_CACHED_BY_DEFAULT = [:datetime, :timestamp, :time, :date] - - included do - cattr_accessor :attribute_types_cached_by_default, :instance_writer => false - self.attribute_types_cached_by_default = ATTRIBUTE_TYPES_CACHED_BY_DEFAULT - end - # Declare and check for suffixed attribute methods. module ClassMethods # Declares a method available for all attributes with the given suffix. @@ -77,9 +70,6 @@ module ActiveRecord end end end - unless generated_methods.include?("id") - define_read_method(:id, primary_key, columns_hash[primary_key.to_s]) - end end def undefine_attribute_methods diff --git a/activerecord/lib/active_record/attribute_methods/read.rb b/activerecord/lib/active_record/attribute_methods/read.rb index 1178c713b4..bea332ef26 100644 --- a/activerecord/lib/active_record/attribute_methods/read.rb +++ b/activerecord/lib/active_record/attribute_methods/read.rb @@ -3,8 +3,15 @@ module ActiveRecord module Read extend ActiveSupport::Concern + ATTRIBUTE_TYPES_CACHED_BY_DEFAULT = [:datetime, :timestamp, :time, :date] + included do attribute_method_suffix "" + + cattr_accessor :attribute_types_cached_by_default, :instance_writer => false + self.attribute_types_cached_by_default = ATTRIBUTE_TYPES_CACHED_BY_DEFAULT + + # Undefine id so it can be used as an attribute name undef_method :id end @@ -35,6 +42,10 @@ module ActiveRecord else define_read_method(attr_name.to_sym, attr_name, columns_hash[attr_name]) end + + if attr_name == primary_key && attr_name != "id" + define_read_method(:id, attr_name, columns_hash[attr_name]) + end end private |