diff --git a/app/controllers/core_data_connector/public/v1/public_controller.rb b/app/controllers/core_data_connector/public/v1/public_controller.rb index d674b1c7..19ca1022 100644 --- a/app/controllers/core_data_connector/public/v1/public_controller.rb +++ b/app/controllers/core_data_connector/public/v1/public_controller.rb @@ -14,7 +14,7 @@ def base_query query = super if nested_resource? && current_record.present? - query = query.joins(build_base_sql).order('record.order') + query = query.joins(build_base_sql).distinct elsif nested_resource? query = item_class.none elsif params[:id].present? diff --git a/app/serializers/concerns/core_data_connector/public/v1/typeable_serializer.rb b/app/serializers/concerns/core_data_connector/public/v1/typeable_serializer.rb index e99e2311..fbb5fc80 100644 --- a/app/serializers/concerns/core_data_connector/public/v1/typeable_serializer.rb +++ b/app/serializers/concerns/core_data_connector/public/v1/typeable_serializer.rb @@ -5,7 +5,7 @@ module TypeableSerializer extend ActiveSupport::Concern included do - index_attributes(:project_model_relationship_uuid) { |item| relationship_uuid(item) } + index_attributes(:project_model_relationship_uuid) { |item| relationship_uuid(item).length > 1 ? relationship_uuid(item) : relationship_uuid(item)[0] } index_attributes(:project_model_relationship_inverse) { |item| relationship_inverse(item) } protected @@ -16,9 +16,9 @@ def self.relationship_inverse(item) def self.relationship_uuid(item) if !item.relationships.empty? - item.relationships.map{ |r| r.project_model_relationship.uuid }.first + item.relationships.map{ |r| r.project_model_relationship.uuid }.uniq elsif !item.related_relationships.empty? - item.related_relationships.map { |r| r.project_model_relationship.uuid }.first + item.related_relationships.map { |r| r.project_model_relationship.uuid }.uniq end end end