Array con tamaño 10 dice You have a nil object when you didn

Hola, en primer lugar daos las gracias por el trabajo que hace la gente
en el foro,realmente increible y es de muchisima ayuda a los que
empezamos en esto.

Bueno, basicamente mi problema es que tengo un array, con 10 elementos,
segun me dice size, pero cuando intento acceder a alguno de sus
elementos, de cualquier forma, me dice que estoy intentando acceder, por
ejemplo, a nil.id.

es decir que al elemento que estoy accediendo es nil, pero es una
contradiccion, pues @array.size me da 10 asique no entiendo muy bien que
esta pasando…

Gracias

Kike De la fuente wrote:

Hola, en primer lugar daos las gracias por el trabajo que hace la gente
en el foro,realmente increible y es de muchisima ayuda a los que
empezamos en esto.

Bueno, basicamente mi problema es que tengo un array, con 10 elementos,
segun me dice size, pero cuando intento acceder a alguno de sus
elementos, de cualquier forma, me dice que estoy intentando acceder, por
ejemplo, a nil.id.

es decir que al elemento que estoy accediendo es nil, pero es una
contradiccion, pues @array.size me da 10 asique no entiendo muy bien que
esta pasando…

Gracias

D:\Users\titan>irb
irb(main):001:0> a=[nil,1,2]
=> [nil, 1, 2]
irb(main):002:0> a[0]
=> nil

Quiza tu elemento en realidad es un nil.
Imprimelo antes para asegurarte …

-r.

hola,

puedes compactar el array antes de usarlo,
para remover los elementos nil:

a = [nil, 1, nil, 2]
=> [nil, 1, nil, 2]

a.compact
=> [1, 2]

a
=> [nil, 1, nil, 2]

a.compact!
=> [1, 2]

a
=> [1, 2]

nota la diferencia entre .compact y compact!,
el primero retorna un nuevo array,
en cambio el segundo modifica el array original.

saludos
Franco