2 Stimmen

Gibt es eine einfache Möglichkeit, einen Namen für ein Modell zu ändern?

Ich habe vor kurzem eine App gebaut, die ein Modell hat Bücher, die eine Datenbanktabelle ist und mit mehreren Modellen/Controllern verbunden. Ich habe vor kurzem gelernt, dass anstelle von Bücher es Publikationen genannt werden muss (nur ein Beispiel)...

Ich möchte nun die Datenbank und alle Erwähnungen in der gesamten App aktualisieren. Gibt es eine einfache Möglichkeit, das in Rails 3 zu tun. Oder muss ich diese bestimmte Tabelle migrieren (über Version?) und alle Verweise in der gesamten App manuell aktualisieren?

Gracias

0 Stimmen

Wie kann man das ohne den "set table name hack" machen?

1voto

Shreyas Punkte 8617

EDITAR

Sie können dieselben Modelle weiterverwenden und somit die Referenzen in der gesamten App beibehalten. Sie können auch die alias_attribute-Methode verwenden, damit Sie weiterhin auf die alten Attributnamen verweisen können, auch wenn Sie die Spaltennamen in Ihrer Tabelle geändert haben, z. B:

class Book < ActiveRecord::Base
    set_table_name 'publications'
    set_primary_key 'id'
    alias_attribute :id,:publication_id
end

0voto

vonconrad Punkte 24867

Nein, es gibt keine Möglichkeit, ein Modell automatisch umzubenennen.

Mein Vorschlag wäre, das Modell einfach zu löschen und unter einem neuen Namen neu zu erstellen, da dies in der Regel einfacher ist, als alle Dateien umzubenennen, die beim Erstellen eines Modells erzeugt werden. Stellen Sie jedoch sicher, dass Ihre Migrationen korrekt sind!

Was den Code betrifft, so müssen Sie das auf die harte Tour machen. Einige Texteditoren können über mehrere Dateien hinweg suchen und ersetzen, was praktisch sein könnte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X