diff --git a/ruby/hyper-model/lib/reactive_record/active_record/instance_methods.rb b/ruby/hyper-model/lib/reactive_record/active_record/instance_methods.rb index 0eccace04..156a6ffee 100644 --- a/ruby/hyper-model/lib/reactive_record/active_record/instance_methods.rb +++ b/ruby/hyper-model/lib/reactive_record/active_record/instance_methods.rb @@ -128,7 +128,8 @@ def ==(ar_instance) return false unless ar_instance.is_a?(ActiveRecord::Base) return false if ar_instance.new_record? return false unless self.class.base_class == ar_instance.class.base_class - id == ar_instance.id + return id == ar_instance.id unless id.nil? + attributes == ar_instance.attributes end def [](attr) diff --git a/ruby/hyper-model/lib/reactive_record/active_record/reactive_record/getters.rb b/ruby/hyper-model/lib/reactive_record/active_record/reactive_record/getters.rb index b60cba33e..57a520f2e 100644 --- a/ruby/hyper-model/lib/reactive_record/active_record/reactive_record/getters.rb +++ b/ruby/hyper-model/lib/reactive_record/active_record/reactive_record/getters.rb @@ -95,7 +95,7 @@ def non_relationship_getter_common(attr, reload, &block) def getter_common(attribute, reload) @virgin = false unless data_loading? - return if @destroyed + return @attributes[attribute] if @destroyed if @attributes.key? attribute current_value = @attributes[attribute] current_value.notify if current_value.is_a? Base::DummyValue