Ich bin ein paar Jahre alt ziemlich große Rails 4.1 App, wo eines der zentralen Modelle eine Spalte namens model_name
hat.Upgrade Schienen 4.1 bis 4.2 Spalte Name Problem
Nach dem fehlgeschlagenen Versuch, die App auf Schienen 4.2 zu aktualisieren, haben wir herausgefunden, dass dieser Spaltenname tatsächlich ein reserviertes Wort ist. Dies war uns vorher nicht aufgefallen, da die Methode der Schienen, die den Namen verwendete, eine private Methode war. Nun, seit Schienen 4.2 ist das öffentlich, und Rails beklagt sich riesig über die Namensgebung.
ich wirklich wirklich wirklich will nicht, dass die Spalt umbenennen, da es überall in unserer Anwendung referenziert ist, auch in einer Menge von serialisierten Daten, historische URL usw.
Irgendwelche Vorschläge auf einem alternativen Upgrade-Verfahren anders als die Umbenennung die Kolumne?
außerhalb von Patching/Ihre eigene Gabel von Schienen gehalten wird, bin ich nicht sicher, dass viel Auswahl. Da model_name wird überall in der Schiene Quelle verwendet. – Doon
Ich würde einfach einen OOP-Ansatz nehmen und eine model_name-Methode in Ihrer Modellklasse definieren, die das tut, was Sie brauchen. Sollte bei Bedarf nur die Standardeinstellungen überschreiben, da Sie in 4.1 keine Probleme hatten. – bkunzi01