2014-02-12 1 views
5

Ich habe versucht, meinem Rails-Blog ein Tagging-Modell hinzuzufügen. Aber ich habe versehentlich ein "Tags.rb" -Modell erzeugt, im Gegensatz zu "Tag.rb", nachdem ich den Leitfaden gelesen hatte, erkannte ich, dass das "tag" Plural ein Fehler war, wenn es um das Modell ging. Ich rollte die MigrationModell- und Migrationsdatei-Rails löschen 4

rake db:rollback 

und dann

rails destroy model Tags.rb 

und das war, was ich zurück

invoke active_record 
    remove /home/migration/templates/create_table_migration.rb 
    remove app/models/tags.rb.rb 
    invoke test_unit 
    remove  test/models/tags.rb_test.rb 
    remove  test/fixtures/tags.rbs.yml 

bekam mit, als ich, obwohl seine noch dort in den Modellordner zurückkommen. Bitte helfen :)

Antwort

2

Gib

rails destroy model Tag 
+0

Ja, gerade lief das. Gleiches Ergebnis. Ich gehe zurück in die Datei und die Tags.rb ist immer noch im Modell. – nadia

+0

Ich versuche es mit "rails g model - force Tag" zu überschreiben, aber es sagt mir immer: "Kein Wert für den Namen der erforderlichen Argumente '" – nadia

1

Versuchen Tags unter Verwendung mehrerer ohne zusätzliche .rb, wie

rails destroy model Tags 

this helps

1

Sie können die Dateien manuell löschen, oder einfach die "s" s manuell entfernen.

0

Sie können die Migration von Dateien in Ordner Migrate und Modell in der Modellordner löschen und dann können Sie wieder neue erstellen, die Sie wollen.

müssen Sie ausführen, die Datenbank

rails g model tag 

Dann wandern Befehle

rake db:migrate 
1

versuchen, diese

bundle exec rake db:rollback 

und löschen Sie Ihr Modell als

rails destroy model <model_name> 

jetzt vollständig gelöscht.

+0

perfekt, genau das, was ich gesucht habe, funktioniert es wie ein Charme! Danke, Antony –

0

Zuerst, beim Generieren eines Rails-Modells mit rails generate model, fügen Sie .rb nicht am Ende des Modellnamens hinzu. Rails führt das automatisch aus, wenn Sie also .rb selbst hinzufügen, erhalten Sie ein Modell mit dem Namen Tag.rb.rb, das ungültig ist.

Du läufst den Abtrennungs Generator mit "Tags.rb". Haben Sie das Modell ursprünglich mit rails generate model Tags.rb generiert? Wenn Sie das getan haben, wird die Ausführung von rails destroy model Tags.rb hoffentlich alle Dateien entfernen, aber da der Modellname ungültig ist, funktioniert er möglicherweise nicht wie erwartet (Ihr Anwendungsfall liegt außerhalb des vorgesehenen Verwendungsfalls des Generators). Wenn Sie das Modell ursprünglich mit rails generate model Tags erstellt haben, sollte die Ausführung rails destroy model Tags funktionieren.

Wenn Sie aufgerufen ursprünglich rails generate model Tags.rb und die Entfernen-Befehl (die wiederum in verständlich da Tags.rb ist ein ungültiger Name funktioniert nicht läuft - wäre schön gewesen, wenn der Generator ursprünglich Sie Erzeugen einer Tags.rb.rb Datei verboten war , aber man kann nicht alles haben):

  1. Wenn Sie sich leisten können Ihre Datenbank, und wiederholen Sie alle Migrationen, die einfache Lösung wird es sein, manuell entfernen Sie die hinzugefügten Dateien, zerstören die Datenbank, und erneut ausführen, alle Migrationen zu zerstören . Dann können Sie das korrekte Modell mit rails generate model Tag hinzufügen.
  2. Wenn Sie es sich nicht leisten können, Ihre Datenbank zu zerstören, müssen Sie die Problemmigration im Migrationsordner manuell finden, den Befehl down für diese Migration ausführen und diese Migrationsdatei sowie alle anderen Dateien manuell löschen .