Ho creato un'applicazione Rails che esegue la funzionalità di contabilità. Come parte di questo, ho un modello con il nome della classe Transaction
. Fin qui tutto bene, ho costruito questa funzionalità per un mese o giù di lì, e tutto funziona come previsto.Risoluzione di un conflitto di nome classe in un'applicazione Rails
Fino ad ora ...
Ho appena scoperto alcune funzionalità di reporting più vecchio che è stato sviluppato mesi fa utilizzando la libreria Ruport ha smesso di funzionare. Sembra che Ruport, quando genera PDF, richieda una libreria che abbia anche una classe/modulo chiamato Transaction
.
TypeError in Admin/team reportsController#generate
Transaction is not a module
...
This error occurred while loading the following files:
pdf/writer
transaction/simple
Quindi, sto cercando una soluzione rapida qui. Uno che, auspicabilmente, non comporta la ridenominazione del mio modello Transaction
e il refactoring delle ultime settimane di codice.
In attesa di alcuni suggerimenti intelligenti :)
Grazie. Ho cambiato la risposta alla risposta accettata in quanto descrive più accuratamente il problema specifico che ho - anche se Yannis, la risposta è corretta! Alla fine ho fatto ricorso a rinominare il mio modello, la tabella del database e tutte le associazioni utilizzando alcune ricerche e sostituzioni precedenti;) – aaronrussell
Nella versione più recente di Rails, 'set_table_name' è semplicemente' self.table_name = ', vedere http://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html#method-table_name-3D –