5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-22 20:26:22 +00:00

feat: no romper relaciones retroactivamente

oculta los artículos relacionados que ya tienen una relación
establecida, para no romperla sin querer.
This commit is contained in:
f 2024-06-03 17:47:05 -03:00
parent 43308e2811
commit 6d9609f944
No known key found for this signature in database
3 changed files with 33 additions and 2 deletions

View file

@ -0,0 +1,27 @@
# frozen_string_literal: true
module Metadata
# Hasta ahora veníamos habilitando la opción de romper
# retroactivamente relaciones, sin informar que estaba sucediendo.
# Con este módulo, todas las relaciones que ya tienen una relación
# inversa son ignoradas.
module UnusedValuesConcern
extend ActiveSupport::Concern
included do
# Genera un Hash de { title | slug => uuid }, excluyendo el Post
# actual y todos los que ya tengan una relación inversa, para no
# romperla.
#
# @return [Hash]
def values
@values ||= posts.map do |p|
next if p.uuid.value == post.uuid.value
next unless inverse? && (p[inverse].empty? || [p[inverse].value].flatten.include?(post.uuid.value))
[title(p), p.uuid.value]
end.compact.to_h
end
end
end
end

View file

@ -1,4 +1,6 @@
# frozen_string_literal: true # frozen_string_literal: true
# Nueva interfaz # Nueva interfaz
class MetadataNewBelongsTo < MetadataBelongsTo; end class MetadataNewBelongsTo < MetadataBelongsTo
include Metadata::UnusedValuesConcern
end

View file

@ -1,4 +1,6 @@
# frozen_string_literal: true # frozen_string_literal: true
# Interfaz nueva para uno a muchos # Interfaz nueva para uno a muchos
class MetadataNewHasMany < MetadataHasMany; end class MetadataNewHasMany < MetadataHasMany
include Metadata::UnusedValuesConcern
end