Compatibilidad con Rails 2.2.2


#1

Hola lista,

Tengo una app que funciona con Rails 2.1.1 en producción. Estoy haciendo
un rewrite bastante importante, y la nueva versión quisiera que funcione
sobre 2.2.2 (sobretodo por el thread safe y el multilenguaje).

En entorno “development” funciona perfectamente. Pero al lanzarla en
entorno de produccion me escupe algunos errores. He ido depurando los
que he podido, pero me cuentro con este y no se por donde cogerlo:

ivan@devel:~/repo$ RAILS_ENV=production ruby script/server

[… mongrel arrancando …]

/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/
dependencies.rb:102:in `const_missing’: uninitialized constant
Property::CONFIG (NameError)

[… algunas lineas de backtrace …]

Entre las lineas de backtrace se hace referencia al modelo
“Property” (property.rb). Este modelo entre otras cosas tiene una
indexacion a thinking_sphinx, y en esa indexación hay esta linea que
es la conflictiva:

where ‘status_id=’ + CONFIG[‘estado’]

Es decir, parece que a Rails no le gusta la constante CONFIG. Esta
sale de cargar un fichero YAML con algunos parametros de configuracion.
El YAML lo cargo en el “environment.rb”:

inclusion de fichero YAML

require ‘yaml’
CONFIG = YAML.load(File.open("#{RAILS_ROOT}/config/main.yml"))

He pensado que quiza “CONFIG” podia ser una keyword reservada (no
tiene por que, pero bueno), asi que he cambiado la sintaxis a
CONFIGURACION, pero el problema persiste.

Como decía al principio, la aplicacion funciona perfectamente en:

Rails 2.1.1) development y produccion
Rails 2.2.2) development

Que estoy haciendo mal?

Muchisimas gracias de antemano, salu2!

Ivan


Real_men_dont_need_spacebars


#2

Buenas,

prueba a poner ::CONFIG en lugar de CONFIG en el property, para darle
a entender a ruby que es una constante que no depende de Property.

Saludos,

Isaac Feliu


#3

Hola de nuevo

Gracias Isaac por tu respuesta, pero no ha funcionado.
Si incluyo el YAML en el modelo directamente entonces si que funciona.
Por que no lo coje del environment? es alguna nueva feature oscura de
Rails 2.2.2?

Tengo que releerme las release-notes…

Ivan