tutorial rails para instalar gratis descargar ruby-on-rails-4 associations autoload rails-console

ruby on rails 4 - para - Consola Rails: No se puede cargar automáticamente la constante



ruby version (3)

Tengo un modelo de Customer_ratings que permite a los usuarios dejar comentarios unos sobre otros. La aplicación web funciona correctamente, y los comentarios se recopilan, almacenan y muestran.

Quería entrar y eliminar algunos comentarios a través de la consola de Rails, pero cuando ingreso Customer_rating.all , aparece el siguiente error:

LoadError: Unable to autoload constant Customer_rating, expected /Users/myapps/app/models/customer_rating.rb to define it

De forma similar, si ingreso Customer_rating [0], obtengo:

RuntimeError: Circular dependency detected while autoloading constant Customer_rating

No tengo este problema al acceder a otras tablas a través de mi consola.

¿Qué podría estar causando el problema y por qué este error no prohibiría que las valoraciones de clientes funcionen correctamente a través de la aplicación web?


Parece un caso de convención de nomenclatura en mal estado.

Según la convención de nomenclatura de Rails , los nombres de archivo deben estar en snake_case y los nombres de clase en CamelCase . En su escenario, el nombre del archivo debe ser customer_rating.rb y el nombre de la clase debe ser CustomerRating .

Después de realizar estos cambios, use CustomerRating.all (ya que el nombre de clase actualizado es CustomerRating ) para obtener todas las calificaciones de los clientes. No utilice Customer_rating.all .


Solo necesitas modificar el nombre del Módulo

Por ejemplo, si el enlace es http://sairam.esy.es/users/customer_rating entonces su controlador debería estar

module Users class RatingController # ... def customer_rating # ... end # ... end end


También me gustaría agregar un escenario de este problema que encontré para futuras referencias.

Estoy ejecutando Rails 4.0 y tuve el mismo problema, pero lo que sucedió fue que tenía un modelo llamado Student dentro de student.rb que estaba contenido en una carpeta llamada Student. No me di cuenta al principio, pero el nombre de la carpeta era el problema. Cambiar el nombre de la carpeta a otro que no sea el nombre del modelo solucionó el problema.