He estado construyendo una aplicación Rails que realiza funciones de contabilidad. Como parte de esto, tengo un modelo con el nombre de clase Transaction
. Hasta ahora todo bien, he estado construyendo esta funcionalidad por un mes más o menos, y todo está funcionando como se esperaba.Resolviendo un conflicto de nombre de clase en una aplicación Rails
Hasta ahora ...
acabo de descubrir algunos mayores funcionalidad de informes que se desarrolló hace meses usando la biblioteca Ruport ha dejado de funcionar. Parece que Ruport, al generar archivos PDF, requiere una biblioteca que también tiene una clase/módulo llamado Transaction
.
TypeError in Admin/team reportsController#generate
Transaction is not a module
...
This error occurred while loading the following files:
pdf/writer
transaction/simple
Así que, estoy buscando una solución rápida aquí. Uno que afortunadamente no implica el cambio de nombre de mi modelo Transaction
y la refactorización del código de las últimas semanas.
Mirando hacia adelante a algunas sugerencias inteligentes :)
Gracias. He cambiado su respuesta a la respuesta aceptada, ya que describe con más precisión el problema específico que tengo, ¡aunque Yannis, la respuesta también es correcta! Al final, decidí cambiar el nombre de mi modelo, tabla de base de datos y todas las asociaciones usando old-skool find and replace;) – aaronrussell
En la versión más nueva de Rails, 'set_table_name' es solo' self.table_name = ', vea http://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html#method-i-table_name-3D –