He visto este problema surgir en muchas circunstancias diferentes y me gustaría obtener las mejores prácticas para corregirlo/corregirlo en StackOverflow.Cómo arreglar/depurar 'esperado x.rb para definir X.rb' en Rails
Para utilizar un ejemplo del mundo real esto se me ocurrió esta mañana:
expected announcement.rb to define Announcement
La clase funcionó bien en el desarrollo, prueba y desde una consola de producción, pero fallaron en una producción de mestizo. Aquí está la clase:
class Announcement < ActiveRecord::Base
has_attachment :content_type => 'audio/mp3', :storage => :s3
end
El tema que quisiera abordar en las respuestas no es resolver tanto este problema específico, pero cómo depurar correctamente para obtener los carriles para darle un error significativo como se esperaba para definir x.rb X.rb' es a menudo una cortina de humo ...
Editar (3 grandes respuestas hasta ahora, cada w/una solución parcial)
Depuración:
De Joe Van Dyk: Intente acceder al modelo a través de una consola en el entorno/instancia que está causando el error (en el caso anterior: script/console production escriba 'Anuncio').
De Otto: Intente establecer un conjunto de complementos mínimo mediante un inicializador, por ejemplo: config.plugins = [: exception_notification,: ssl_requirement,: all] y luego vuelva a habilitarlos de uno en uno.
causas específicas:
De Ian Terrell: si está utilizando attachment_fu asegúrese de que tiene instalado el procesador de imagen correcta. attachment_fu lo requerirá incluso si no está adjuntando una imagen.
De Otto: asegúrese de no nombrar un modelo que entra en conflicto con una clase incorporada de Rails, por ejemplo: Solicitud.
De Josh Lewis: asegúrese de que no tiene nombres duplicados de clase o módulo en algún lugar de su aplicación (o lista de gemas).
He estado teniendo el mismo problema con las tareas de rake en producción. Aquí está la mejor solución que he encontrado: http://www.spacevatican.org/2008/12/28/when-cache_classes-gets-you-down/ – user1902430