Прямо сейчас в моей модели продуктов есть строковый столбец категории, а форма имеет выбор, который получает свои значения из массива в модели продукта.На данный момент существует только три возможных категории: wood_stoves, arborist_gear и бензопилы.У меня есть контроллер с действием для каждого из них, в котором перечислены продукты для их соответствующей категории.
Я переключаю категории в таблицу базы данных и вкладываю в нее продукты с помощью отношений has_many и own_to, и вот мойвопрос.Является ли следующее плохой идеей?
- Создать запись для каждого из wood_stoves, arborist_gear и цепных пил.
- Создать миграцию, которая преобразует значение каждого из этих продуктов /столбец категории в соответствующее целое число идентификатора записи из вновь созданных записей категорий.
- Добавьте к миграции шаг, который изменяет столбец category.string на столбец category.integer.
- Добавьте кПеренесите необходимые шаги вниз, чтобы отменить все это.
Короче говоря, должен ли я делать все это в процессе миграции, чтобы он был обратимым, или я должен отказаться от обратимости и вручную внести изменения в базу данных, чтобы избежатьнесколько нелепо выглядящая миграция, которая сможет обратить вспять только те продукты, которые соответствуют исходным категориям?Другими словами, миграция не сможет отменить продукты, принадлежащие вновь созданным категориям.