Array global

No se si es posible que una constante albergue a un array. Pero me
gustaría
que así fuera. He probado a hacer esto en environment.rb:

$SETTINGS = [ [‘nombre’, ‘miNombre’], [‘version’, ‘1.0’] ]

Pero no puedo usarlo en ningún lado, por el contrario si que tengo
constantes que albergan strings y éstas si que son accesibles desde
cualquier lado.

¿Como podría tener un array accesible desde cualquier parte?

Muchas gracias.

Porque tiene un simbolo de $ al principio?

On Sep 6, 2007, at 9:02 PM, Paco García wrote:

No se si es posible que una constante albergue a un array. Pero me
gustaría que así fuera. He probado a hacer esto en environment.rb:

$SETTINGS = [ [‘nombre’, ‘miNombre’], [‘version’, '1.0 '] ]

Un detalle, esa es una variable global, una constante no llevaria el
simbolo de dolar

irb(main):001:0> FOO
NameError: uninitialized constant FOO
from (irb):1
irb(main):002:0> $FOO
=> nil

Pero no puedo usarlo en ningún lado

Deberia funcionar.

– fxn

Xavier N. wrote:

On Sep 6, 2007, at 9:02 PM, Paco Garc�a wrote:

No se si es posible que una constante albergue a un array. Pero me
gustar�a que as� fuera. He probado a hacer esto en environment.rb:

$SETTINGS = [ [‘nombre’, ‘miNombre’], [‘version’, '1.0 '] ]

Un detalle, esa es una variable global, una constante no llevaria el
simbolo de dolar

irb(main):001:0> FOO
NameError: uninitialized constant FOO
from (irb):1
irb(main):002:0> $FOO
=> nil

Pero no puedo usarlo en ning�n lado

Deberia funcionar.

– fxn

Hola

Si no necesitas actulizarlo con ponerlo en método initialize del
controller te valdría.

def initialize
super
@SETTINGS = [ [‘nombre’, ‘miNombre’], [‘version’, '1.0 '] ]
end

Yo me estoy pegando con esto también. Ya q necesito actualizar y no me
deja. Si te enteras de algo más. Te agradeciría q lo pusieras por aquí
:wink:

Ya había probado lo de ‘super’ y nada. Sin embargo, con el filtro sí que
funciona. El código que carga @current_user tambien va en el filtro
¿verdad?

Finalmente, una pregunta: ¿se supone que se crea una instancia de
controlador por cada petición?

On 9/25/07, Rafa C. [email protected] wrote:

Yo por mi parte tambien tengo un problemilla.

intento poner en el initialize del application.rb

session[:usuario]=Usuario.find(1)

y me da un error de ejecución. ¿Falta aún alguna definición?

Probablemente sea porque estás pisando el initialize de
ApplicationController. Una solución sería:

def initialize
super
session[:usuario]=Usuario.find(1)
end

Sin embargo, la forma “correcta” sería utilizando un filtro:

class ApplicationController < …
before_filter :login_required

protected
def login_required
session[:usuario]=Usuario.find(1)
end
end

Finalmente, no es una buena idea guardar todo el objeto Usuario en la
sesión. Quizás podrías optar por algo tipo:

session[:usuario] = 1
@current_user = Usuario.find(session[:usuario])

Y luego @current_user está disponible para todos tus controladores.

Saludos

Yo por mi parte tambien tengo un problemilla.

intento poner en el initialize del application.rb

session[:usuario]=Usuario.find(1)

y me da un error de ejecución. ¿Falta aún alguna definición?

Esto lo quiero para no tener que tratar con el tema de la autenticación
y
tener una sesión con la que trabajar.

On 9/25/07, Rafa C. [email protected] wrote:

Ya había probado lo de ‘super’ y nada. Sin embargo, con el filtro sí que
funciona. El código que carga @current_user tambien va en el filtro ¿verdad?

Claro.

Finalmente, una pregunta: ¿se supone que se crea una instancia de
controlador por cada petición?

Hasta donde yo sé, sí :slight_smile:

Poir cierto, :usuario existe y Usuario tambien.