2017-02-07 3 views
0

Mein System hatte früher bereits das Produktmodell mit vielen existierenden Records, aber jetzt möchte ich ein BaseProduct als grundlegendes ActiveRecord :: Base haben (verschiebe einige gebräuchliche Attribute in) und lasse Product und (Future) Product es erweitern.Wie ActiveModel mit STI migrieren?

Frage: Wie kann ich diese alten Datensätze migrieren? was ich mir vorstellen kann, sind unten:

  • Schienen g Modell BaseProduct.
  • Erstellen Sie Produkt und (zukünftige) Produktklasse mit STI-Unterstützung.
  • Rake-Task zum Verschieben aller alten Produkttabellensätze in neues BaseProduct.
  • Alte Produkttabelle entfernen.

Alle anderen fehlen?

+0

mehr Details Bitte –

+0

ausführliche Gedanken hinzugefügt, was ich plane –

+1

zu tun, ich anstatt sie zu entfernen alte Tabelle Umbenennungs sagen Sie müssen also alle Datensätze verschieben –

Antwort

1

Sie Ihren Tisch nicht nur die Original-Tabelle aus Ihrer vererbten Klasse Referenz ändern:

class BaseProduct < ApplicationRecord 
    self.table_name = "products" 
end 

class Product < BaseProduct 
end 

class FutureProduct < BaseProduct 
end