diff options
author | Jon Leighton <j@jonathanleighton.com> | 2012-04-12 09:01:10 -0700 |
---|---|---|
committer | Jon Leighton <j@jonathanleighton.com> | 2012-04-12 09:01:10 -0700 |
commit | 65be11ffecdf58e6b69fa84ea3547cd3201d2329 (patch) | |
tree | 0f1b36e6d013144a9f054eadbd5822b2f80b9776 | |
parent | eda65f391edc1a4ba21fc51f076a442034095826 (diff) | |
parent | 1e417d5cd2a014909b5b9b7b34110e3d0f2803b7 (diff) | |
download | rails-65be11ffecdf58e6b69fa84ea3547cd3201d2329.tar.gz rails-65be11ffecdf58e6b69fa84ea3547cd3201d2329.tar.bz2 rails-65be11ffecdf58e6b69fa84ea3547cd3201d2329.zip |
Merge pull request #5722 from kennyj/some_refactor_for_association
Some refactor for association.
3 files changed, 7 insertions, 8 deletions
diff --git a/activerecord/lib/active_record/associations/association.rb b/activerecord/lib/active_record/associations/association.rb index 3c41a303d3..4e09a43f8e 100644 --- a/activerecord/lib/active_record/associations/association.rb +++ b/activerecord/lib/active_record/associations/association.rb @@ -25,10 +25,7 @@ module ActiveRecord def initialize(owner, reflection) reflection.check_validity! - @target = nil @owner, @reflection = owner, reflection - @updated = false - @stale_state = nil reset reset_scope @@ -46,6 +43,7 @@ module ActiveRecord def reset @loaded = false @target = nil + @stale_state = nil end # Reloads the \target and returns +self+ on success. @@ -215,10 +213,6 @@ module ActiveRecord def stale_state end - def association_class - @reflection.klass - end - def build_record(attributes, options) reflection.build_association(attributes, options) do |record| attributes = create_scope.except(*(record.changed - [reflection.foreign_key])) diff --git a/activerecord/lib/active_record/associations/belongs_to_association.rb b/activerecord/lib/active_record/associations/belongs_to_association.rb index 97f531d064..81c6e400d2 100644 --- a/activerecord/lib/active_record/associations/belongs_to_association.rb +++ b/activerecord/lib/active_record/associations/belongs_to_association.rb @@ -14,6 +14,11 @@ module ActiveRecord self.target = record end + def reset + super + @updated = false + end + def updated? @updated end diff --git a/activerecord/lib/active_record/associations/collection_association.rb b/activerecord/lib/active_record/associations/collection_association.rb index da4c311bce..14aa557b6c 100644 --- a/activerecord/lib/active_record/associations/collection_association.rb +++ b/activerecord/lib/active_record/associations/collection_association.rb @@ -71,7 +71,7 @@ module ActiveRecord end def reset - @loaded = false + super @target = [] end |