From 84d7b8f7c0eac7874c15e072d86e205e70ea85d3 Mon Sep 17 00:00:00 2001 From: f Date: Thu, 26 Oct 2023 16:41:33 -0300 Subject: [PATCH] docs: relaciones (cherry picked from commit 82fdf2518e7b3465e03fb4ba1a7074610aae70e7) --- app/services/post_service.rb | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/app/services/post_service.rb b/app/services/post_service.rb index 4b7c2d7d..da7673d0 100644 --- a/app/services/post_service.rb +++ b/app/services/post_service.rb @@ -169,7 +169,21 @@ PostService = Struct.new(:site, :usuarie, :post, :params, keyword_init: true) do site.indexed_posts.where(post_id: post_ids).map(&:post) end - # Modificar las asociaciones en cascada + # Modificar las asociaciones en cascada, manteniendo reciprocidad + # y guardando los archivos correspondientes. + # + # HABTM, Locales: si se rompe de un lado se elimina en el otro y lo + # mismo si se agrega. + # + # HasMany: la relación es de uno a muchos. Al quitar uno, se elimina + # la relación inversa. Al agregar uno, se elimina su relación + # anterior en el tercer Post y se actualiza con la nueva. + # + # BelongsTo: la inversa de HasMany. Al cambiarla, se quita de la + # relación anterior y se agrega en la nueva. + # + # @param :post [Post] + # @return [nil] def update_associations(post) association_attributes(post).each do |attribute| metadata = post[attribute] @@ -219,6 +233,8 @@ PostService = Struct.new(:site, :usuarie, :post, :params, keyword_init: true) do added_paths << associated_post.path.value end + + nil end # @todo por qué no podemos usar nil para deshabilitar un valor?