2010-11-22 6 views
16

Ambos objetos parecen estar dentro de la consola 'rails'.¿Rails.env y Config.root deberían funcionar en el modelo de 'consola de rieles'?

¿Por qué es eso?

En realidad ahora Rails obras:

puts Rails.env 
/path/to/my/project 

pero para config:

puts config.root 

NameError: undefined local variable or method `config' for #<Object:0x1001dd2a0> 
    from (irb):8 
+0

Esto no es verdad para mí. Pediría más información para ayudarlo a depurar, pero no estoy seguro de qué información pedir. ¿Seguro que estás en una aplicación de Rails 3? – Matchu

+0

Rails.env y Rails.root funcionan para mí en las consolas de ambos Rails 3.0.1 y 2.3.10. Como dice Matchu, más información de depuración sería valiosa. –

Respuesta

41

no hay un método global de config. Si está copiando esto de los archivos de su entorno en Rails 2, tenga en cuenta que estos se evalúan en un contexto determinado.

Para llegar al objeto config de la consola, pruebe uno de los siguientes:

para los carriles 3 y superiores:

Rails.application.config 

para los carriles 2.x:

Rails.configuration 

Si necesita obtener el directorio raíz de su proyecto (no estoy seguro si esto es realmente lo que está tratando de lograr), puede hacer lo siguiente en Rails 2 y arriba:

Rails.root 
+0

útil gracias! – jpwynn

+1

'Rails.application.config' también funciona para Rails 4.x – Kris

Cuestiones relacionadas