Ich bin ziemlich neu in Ruby on Rails und habe mich gefragt, ob es eine Möglichkeit gibt, das Datenbankschema für ein Modell zu bearbeiten.
Zum Beispiel habe ich das Subscriber-Modell in meiner Anwendung - die Art, wie ich es erstellt habe, war mit rails generate scaffold Subscriber email:string
Aber jetzt möchte ich auch einen Namen im Abonnentenmodell. Gibt es einen einfachen Weg, dies zu tun? Ich habe viel Code in meine aktuellen Controller und Views geschrieben, also möchte ich das Gerüst nicht unbedingt zerstören, aber ich möchte das Modell bearbeiten.
Vielen Dank im Voraus,
hwrd
P.S. Ich benutze Ruby on Rails 3
Ein ActiveRecord-Modell prüft die Tabelle, die es darstellt. Sie müssen Ihr Modell nicht wirklich ändern, nur um ein neues Feld hinzuzufügen (es sei denn, Sie möchten Validierungen hinzufügen usw.).
Was Sie tun möchten, ist eine neue Migration durchzuführen und dann Ihre Datenbank zu migrieren:
%Vor%Dann können Sie anfangen, auf das Namensfeld in Ihren Controllern und Sichten zu verweisen.
(Dieser Generator-Befehl mag magisch erscheinen, aber der Schienen-Generator erkennt dieses Format und erzeugt den passenden add_column
und remove_column
Code. Siehe Migrationsleitfaden für die Migration zum weiteren Lesen.
Wenn Sie das Datenbankschema Ihres Modells ändern möchten, sollten Sie Migrationen verwenden.
Du machst Dinge wie
%Vor%Wenn Sie nur Modelle suchen und die Daten in jeder Instanz aktualisieren möchten, gehen Sie mit der Antwort von @ apneadiving.
Tags und Links ruby-on-rails-3 ruby-on-rails data-modeling scaffolding