From 1b6599dd407d1f73061934d8a101904b39fd6a2a Mon Sep 17 00:00:00 2001 From: f Date: Wed, 24 Feb 2021 13:05:51 -0300 Subject: [PATCH] refactorizacion --- app/models/post.rb | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/app/models/post.rb b/app/models/post.rb index 8fc11b9..68bee86 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -306,10 +306,8 @@ class Post def valid? @errors = {} - layout.metadata.keys.map(&:to_sym).each do |metadata| - template = send(metadata) - - errors[metadata] = template.errors unless template.valid? + attributes.each do |attr| + errors[attr] = self[attr].errors unless self[attr].valid? end errors.blank? @@ -337,8 +335,8 @@ class Post end def update_attributes(hashable) - hashable.to_hash.each do |name, value| - self[name].value = value + hashable.to_hash.each do |attr, value| + self[attr].value = value end save @@ -350,11 +348,7 @@ class Post # por su id y convertimos a Array para poder agregar o quitar luego # sin pasar por ActiveRecord. def usuaries - @usuaries ||= if (d = document_usuaries).empty? - [] - else - Usuarie.where(id: d).to_a - end + @usuaries ||= document_usuaries.empty? ? [] : Usuarie.where(id: document_usuaries).to_a end private @@ -367,14 +361,13 @@ class Post end def document_usuaries - document.data.fetch('usuaries', []) + @document_usuaries ||= document.data.fetch('usuaries', []) end - # Ejecuta la acción de guardado en cada atributo - # TODO: Solo guardar los que se modificaron + # Ejecuta la acción de guardado en cada atributo. def save_attributes! attributes.map do |attr| - public_send(attr).save + self[attr].save end.all? end end