рельсы 3, новая модель B 1: 1 со старой моделью A, как автоматически создать новую запись B для каждой уже существующей записи A

В исходной схеме Rails v3.0.3 есть таблица customers, а в приложении есть данные для 100 клиентов.

через миграцию мы добавляем таблицу cust_info с соотношением 1:1, например:

customers has_one cust_info 
cust_info belongs_to customers

поэтому прямо сейчас (после запуска rake db:migrate для создания новой модели) у нас есть 100 «старых» записей customer, которые не имеют требуемой записи cust_info 1:1.

QUES (1a) (обновление устаревших данных) Каков «железный путь» для создания необходимой (пустой) записи cust_info для каждой из наших 100 существующих записей customer?

ВОПРОСЫ (2) (в будущем) как изменить наше приложение, чтобы при создании НОВОЙ записи customer автоматически создавалась соответствующая запись cust_info?


person jpw    schedule 02.02.2011    source источник


Ответы (1)


Q1: Поскольку у вас небольшой набор данных, я бы работал в консоли:

Customer.all.each do |c|
   c.create_cust_info.save
end

Q2: используйте следующий обратный вызов: after_create в вашей модели клиента и создайте cust_info внутри

person apneadiving    schedule 02.02.2011