У меня есть модель Content
, где каждый фрагмент контента имеет источник. В настоящее время модель Content
имеет столбец link
для URL-адреса и столбец link_text
для имени источника, то есть пользователь должен вручную ввести имя и URL-адрес источника. Я хочу изменить это, чтобы иметь возможность автоматически вводить имя, как только URL предоставлен. Вот что я сделал:
Я сделал Source
модель. Модель Source содержит все name
и domain
каждого источника, используемого для контента. Это относится к Контенту следующим образом: A Source
has_many частей Content
, в то время как Content
принадлежит Source
.
Поэтому мне нужно заменить столбец link_text
на столбец source_id
. Затем мне нужно установить значение столбца source_id
, используя столбец link
в таблице содержимого.
т.е. Я сравню URL-адрес в столбце link
(в таблице содержимого) с URL-адресом в столбце domain
(в таблице источников) и задаю source_id
для каждой строки Content
соответственно.
Как я могу это сделать?
Еще одна вещь, которую следует учитывать, это то, что я хочу установить source_id
в миграции, чтобы я мог также внести изменения в существующие данные в моем производственном приложении.
Я создал 1 миграцию, чтобы добавить столбец source_id
в мою таблицу содержимого, и еще одну миграцию, чтобы установить все данные в этом столбце для всех существующих записей. Это вторая миграция, в которой я не уверен.