Обновите все строки в столбце, используя данные из другого столбца в Rails - PullRequest
0 голосов
/ 05 июля 2018

У меня есть модель 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 в мою таблицу содержимого, и еще одну миграцию, чтобы установить все данные в этом столбце для всех существующих записей. Это вторая миграция, в которой я не уверен.

...