diff --git a/lib/netsuite_rails/record_sync.rb b/lib/netsuite_rails/record_sync.rb index 8478d77..c0c07e6 100644 --- a/lib/netsuite_rails/record_sync.rb +++ b/lib/netsuite_rails/record_sync.rb @@ -206,7 +206,7 @@ def netsuite_extract_from_record(netsuite_record) end if association_keys.include?(local_field) - field_value = reflection_attributes[local_field]. + field_value = reflection_attributes[reflection_attributes.keys.first.class == String ? local_field.to_s : local_field]. klass. where(netsuite_id: field_value.internal_id). first_or_initialize diff --git a/lib/netsuite_rails/record_sync/push_manager.rb b/lib/netsuite_rails/record_sync/push_manager.rb index d2eef3c..ae453df 100644 --- a/lib/netsuite_rails/record_sync/push_manager.rb +++ b/lib/netsuite_rails/record_sync/push_manager.rb @@ -129,7 +129,7 @@ def build_netsuite_record(local_record, opts = {}) # TODO pretty sure this will break if we are dealing with has_many - netsuite_field_value = if reflections.has_key?(local_field) + netsuite_field_value = if reflections.has_key?(reflections.keys.first.class == String ? local_field.to_s : local_field) if (remote_internal_id = local_record.send(local_field).try(:netsuite_id)).present? { internal_id: remote_internal_id } else