diff --git a/lib/octopus/model.rb b/lib/octopus/model.rb index ba9649e4..ad5907ac 100644 --- a/lib/octopus/model.rb +++ b/lib/octopus/model.rb @@ -45,14 +45,17 @@ def set_current_shard def init_with(coder) obj = super - return obj unless Octopus.enabled? return obj if obj.class.connection_proxy.current_model_replicated? current_shard_value = coder['attributes']['current_shard'].value if coder['attributes']['current_shard'].present? && coder['attributes']['current_shard'].value.present? + coder['attributes'].send(:attributes).send(:values).delete('current_shard') - coder['attributes'].send(:attributes).send(:delegate_hash).delete('current_shard') + begin + coder['attributes'].send(:attributes).send(:delegate_hash).delete('current_shard') + rescue NoMethodError => e + end obj.current_shard = current_shard_value if current_shard_value.present? obj