@@ -40,10 +40,12 @@ def add_fields(new_fields)
4040
4141 def model_field? ( field_value )
4242 return false unless field_value . respond_to? ( 'split' )
43- bits = field_value . split ( ':' )
44- return false if bits . length < 2
43+
44+ model , _ , id = field_value . rpartition ( ':' )
45+ return false unless model . present? && id . present?
46+
4547 begin
46- bits [ 0 ] . classify . constantize
48+ model . classify . constantize
4749 rescue NameError
4850 return false
4951 else
@@ -75,7 +77,7 @@ def collect_references(activities)
7577 activities . each do |activity |
7678 activity . select { |k , _v | @fields . include? k . to_sym } . each do |_field , value |
7779 next unless model_field? ( value )
78- model , id = value . split ( ':' )
80+ model , _ , id = value . rpartition ( ':' )
7981 model_refs [ model ] [ id ] = 0
8082 end
8183 end
@@ -90,7 +92,7 @@ def inject_objects(activities, objects)
9092 create_activity_results ( activities ) . each do |activity |
9193 activity . select { |k , _v | @fields . include? k . to_sym } . each do |field , value |
9294 next unless model_field? ( value )
93- model , id = value . split ( ':' )
95+ model , _ , id = value . rpartition ( ':' )
9496 activity [ field ] = objects [ model ] [ id ] || value
9597 activity . track_not_enriched_field ( field , value ) if objects [ model ] [ id ] . nil?
9698 end
0 commit comments