diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2014-04-09 11:03:10 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2014-04-09 11:03:10 -0700 |
commit | db5e578b647e1730ea2aecb1ca58fd9a434f6cf6 (patch) | |
tree | 524517ae1ffc1ec01af367d72a51a8323dee931b /activerecord/lib/active_record/enum.rb | |
parent | 3321d1a2d1908f25d962169d0a88b55bca3c2370 (diff) | |
parent | 7b75b678cf11a1aed7927a9db42fb60a38726450 (diff) | |
download | rails-db5e578b647e1730ea2aecb1ca58fd9a434f6cf6.tar.gz rails-db5e578b647e1730ea2aecb1ca58fd9a434f6cf6.tar.bz2 rails-db5e578b647e1730ea2aecb1ca58fd9a434f6cf6.zip |
Merge branch 'master' into adequaterecord
* master: (26 commits)
Avoid URI parsing
Add missing require so requiring `active_support/cache` works again.
depend_on_asset is not required anymore on sprockets-rails 2.1.2
upgrading section for 4.1 is no longer WIP. [ci skip]
Expand explanation of how to set secrets.yml. [ci skip]
Guides: minor typo fixed [ci skip]
Fixed problem where `1.day.eql?(1.day)` is false
new CHANGELOGs entries are in the top [ci skip]
Updates the maintenance policy with new Rails versions
Dont abbreviate that which needs no abbreviation
Dont encourage aliases now that we have variants
Use short-form for the scaffold render calls and drop the needless test
Drop in @jeremy's new database.yml template text
Don't deprecate after all
Less ambition, more deprecation
Ensure we correctly and immediately load all ENV entries
Give a deprecation message even when the lookup fails
Rearrange the config merger some more
entry is always a Hash
Check env_url only once
...
Conflicts:
Gemfile
Diffstat (limited to 'activerecord/lib/active_record/enum.rb')
-rw-r--r-- | activerecord/lib/active_record/enum.rb | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/enum.rb b/activerecord/lib/active_record/enum.rb index 167f8b7a49..18f1ca26de 100644 --- a/activerecord/lib/active_record/enum.rb +++ b/activerecord/lib/active_record/enum.rb @@ -1,3 +1,5 @@ +require 'active_support/core_ext/object/deep_dup' + module ActiveRecord # Declare an enum attribute where the values map to integers in the database, # but can be queried by name. Example: @@ -70,8 +72,9 @@ module ActiveRecord base.defined_enums = {} end - def enum_mapping_for(attr_name) # :nodoc: - defined_enums[attr_name.to_s] + def inherited(base) + base.defined_enums = defined_enums.deep_dup + super end def enum(definitions) @@ -136,7 +139,7 @@ module ActiveRecord mod = Module.new do private def save_changed_attribute(attr_name, value) - if (mapping = self.class.enum_mapping_for(attr_name)) + if (mapping = self.class.defined_enums[attr_name.to_s]) if attribute_changed?(attr_name) old = changed_attributes[attr_name] |