Ich habe eine Rails-Anwendung erstellt, die Buchhaltungsfunktionen ausführt. Als Teil davon habe ich ein Modell mit dem Klassennamen Transaction
. So weit, so gut, ich habe diese Funktionalität für einen Monat oder so gebaut, und alles funktioniert wie erwartet.Auflösen eines Klassennamenskonflikts in einer Rails-Anwendung
Bis jetzt ...
Ich habe entdeckt, nur einige ältere Berichtsfunktionen, die vor Monaten entwickelt wurde die Ruport Bibliothek hat aufgehört zu arbeiten. Es scheint, dass Ruport beim Erzeugen von PDFs eine Bibliothek benötigt, die auch eine Klasse/Modul mit dem Namen Transaction
hat.
TypeError in Admin/team reportsController#generate
Transaction is not a module
...
This error occurred while loading the following files:
pdf/writer
transaction/simple
Also, ich bin auf der Suche nach einer schnellen Lösung hier. Eines, das hoffentlich nicht mein Transaction
Modell umwandelt und den Code der letzten paar Wochen refactoring.
Wir freuen uns auf ein paar kluge Vorschläge :)
Danke. Ich habe Ihre Antwort auf die angenommene Antwort geändert, da sie genauer das spezifische Problem beschreibt, das ich habe - obwohl Yannis, Antwort auch korrekt ist! Am Ende habe ich mein Modell, meine Datenbanktabelle und alle Zuordnungen umbenannt, indem ich alte-skool-Suchen und -Ersetzungen verwendete;) – aaronrussell
In der neueren Version von Rails ist 'set_table_name' nur 'self.table_name =', siehe http://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html#method-i-table_name-3D –