В Rails / ActiveReocrd есть способ заменить один экземпляр другим, чтобы все отношения / внешние ключи были разрешены.
Я мог бы представить что-то вроде этого:
//setup
customer1 = Customer.find(1)
customer2 = Customer.find(2)
//this would be cool
customer1.replace_with(customer2)
предположим, что customer1 был плохо настроен, а кто-то ушел и создал customer2, не зная о customer1, было бы неплохо иметь возможность быстро настроить все на customer 2
Таким образом, также необходимо обновить все внешние ключи
Пользователь принадлежит_: клиент
Сайт принадлежит: клиенту
тогда любые пользователи / веб-сайты с внешним ключом customer_id = 1 автоматически получат значение 2 с помощью этого метода replace_with
Существует ли такая вещь?
[Я могу представить себе взлом с участием Customer.reflect_on_all_associations (: has_many) и т. Д.]
Ура,
J