Я пытаюсь изменить тип модели от ActiveRecord::Base
до архитектуры STI. Я пишу цикл, чтобы создать все, что нужно, как так:Rails 4: изменение модели от ActiveRecord до STI
EditedArticle.each do |e|
c = Component.create(name: e.name, body: e.body, type: 'EditedArticle', user_id: e.user_id, state: e.state, description: e.description, cover_id: e.cover_id)
e.publication.update_attribute(:component_id, c.id)
end
мне нужно запустить этот цикл так, что EditedArticle
изменения из своей собственной таблицы к подтипу Component
. Будет ли этот цикл работать? Уже класс начинается так:
class EditedArticle < Component
...
Так потенциально EditedArticle.each
не вернет ничего. Должен ли я поддерживать EditedArticle < ActiveRecord::Base
до тех пор, пока этот цикл не будет выполнен? Есть лучший способ сделать это? Это кажется ужасно взломанным.
Я не думаю, что это взломанно, и, кроме того, вы только собираетесь запустить этот цикл один раз, так что я не думаю, что это имеет значение. –