Ich möchte eine Spalte namens "payment_type" in meine Tabelle "orders" einfügen. HierSpalte zu Tabelle hinzufügen und Wert für vorhandene Datensätze in Rails fixieren
ist die Migration, die ich bisher haben:
def change
add_column :orders, :payment_type, :string
end
Ich möchte, dass payment_type den Wert „normal“ für alle Datensätze zu halten, die sich derzeit in der DB sind. Jedoch nicht für die zukünftigen Aufzeichnungen. Ich möchte keinen Standardwert für zukünftige Datensätze. Wie kann ich das machen?
Ich würde empfehlen, die Haupt-Order-Klasse nicht zu verwenden, stattdessen sollten Sie eine Stub-Order-Klasse innerhalb Ihrer Migrationen definieren, sonst werden die Migrationen in Zukunft nicht mehr funktionieren, wenn die Order-Klasse nicht mehr existiert. –
Auch Sie können ändern Methode anstelle von oben und unten Methoden. dies oben Block wird auf def add_column ändern ändern: Aufträge,: payment_type,: string Order.reset_column_information Order.update_all (payment_type: 'normal') Ende – Amit
sorry, ich falsch Kommentar geschrieben, 'change' funktioniert . –