Bearbeiten des Schienenmodells über die Befehlszeile

8

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

    
hwrdprkns 07.01.2011, 19:18
quelle

2 Antworten

12

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.

    
Josh Lindsey 07.01.2011, 19:30
quelle
2

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.

    
Jesse Wolgamott 07.01.2011 19:27
quelle