contenido.rb - class Contenido < ActiveRecord::Base
tema.rb - class Tema < Contenido
Hasta aquÃ, bien… pero ahora añado otro nivel
thread.rb - class Thread < Tema
y ya no puedo hacer migraciones:
script/generate migration add_created_at_to_socios created_at:date
me sale error:
trunk/app/models/thread.rb:1: uninitialized constant Tema (NameError)
Supongo que no carga las clases en el orden correcto… asà que le meto
un require ‘tema’ y me sale otro error
trunk/app/models/tema.rb:1: uninitialized constant Contenido.
Y le meto a tema un require ‘contenido’ y entonces se me queja de…
¡ActiveRecord! Pero borro thread.rb y todo vuelve a funcionar.
thread.rb - class Thread < Tema
me sale error:
trunk/app/models/thread.rb:1: uninitialized constant Tema (NameError)
Thread es una clase core de Ruby (con la que se programan threads).
Como otras core (TrueClass, String, …) esa clase esta siempre
definida al arrancar el interprete, por tanto un “class Thread” esta
reabriendo esa clase.
Las clases en Ruby pueden reabrirse pero no esta permitido cambiar su
padre. Normalmente obtendrias este mensaje de error:
class C; end
class Thread < C; end
superclass mismatch for class Thread (TypeError)
Faltaria ver por que queda ese error escondido. Ruby debe resolver C
porque podria ser que estes usando el padre correcto, y en tu caso
saltaria Dependencies. Es posible que con todo el tinglado quede
enmascarado.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.