Je n'exécutais pas de validations, et j'ai donc des doublons dans mon db. Maintenant, j'ai besoin de supprimer l'enregistrement qui est plus ancien que le dernier enregistrement. Quelle est la meilleure façon de le faire dans Ruby?Supprimer activeecord row qui est plus ancien que l'enregistrement le plus récent
Je le fais pour trouver les dups d'un seul magasin:
customers = Shop.find(105).customers
emails = customers.pluck(:shop_id, :id, :customer_id, :email, :created_at, :credit_amount)
gemails = emails.group_by{ |shop_id, id, customer_id, email, created_at, credit_amount_to_f| customer_id }
gemails.delete_if{ |_, v| v.compact.size <= 1 }
gemails
retourne les dups avec le customer_id
comme la clé.
je peux alors trouver le plus récent record pour le premier doublon comme celui-ci:
Customer.where(customer_id: gemails.keys[0]).order("updated_at").last
Comment puis-je me débarrasser de tous les enregistrements qui partagent la customer_id
qui ne sont pas la dernière?
Merci