Añadir en una lista

Hooola

Tengo una lista en el controller q la creo en el método initialize como
os muestro :

def initialize
super
@itemlist = [Item.new(‘Sobre el Bar’), Item.new(‘Dónde Estamos’),
Item.new(‘Contactar’)]
end

Luego tengo otro método para añadir items, pero sólo me lo añade a esos
3 item de la definición y no puedo añadir más de uno nunca, ya q me
reemplaza el último siempre…

def addItem
if (params[:nombreItem]) then
@itemlist += [Item.new(params[:nombreItem])]
render :action => ‘select’, :templateID => params[:templateID]
end
end

Sabeis como podría añadir a la lista más items

Muchas gracias

Es que @itemlist se está creando nuevo en cada petición HTTP a la
aplicación. Tendrás que guardar @itemlist en la sesión o en la base de
datos.

Salu2,

Javi

El 25/09/07, Zaid Dd [email protected]
escribió:> Hooola

Javier Vidal P. wrote:

Es que @itemlist se est� creando nuevo en cada petici�n HTTP a la
aplicaci�n. Tendr�s que guardar @itemlist en la sesi�n o en la base de
datos.

Salu2,

Javi

El 25/09/07, Zaid Dd [email protected]
escribi�:> Hooola

Muchas gracias por responder.

No podemos tocar la sesión. Así q estaba pensando si hay alguna forma de
enviar la lista en el request al hacer el render y concatenarle la lista

On Tue, Sep 25, 2007 at 02:19:02PM +0200, Javier Vidal P. wrote:

Es que @itemlist se está creando nuevo en cada petición HTTP a la
aplicación. Tendrás que guardar @itemlist en la sesión o en la base de
datos.

Sí, ese parece el problema.

Por cierto, esto es un poco anti-ruby:

@itemlist += [Item.new(params[:nombreItem])]

Mejor algo como esto:

@itemlist << Item.new(params[:nombreItem])]

Saludos.

Imobach González Sosa wrote:

On Tue, Sep 25, 2007 at 02:19:02PM +0200, Javier Vidal P. wrote:

Es que @itemlist se est� creando nuevo en cada petici�n HTTP a la
aplicaci�n. Tendr�s que guardar @itemlist en la sesi�n o en la base de
datos.

S�, ese parece el problema.

Por cierto, esto es un poco anti-ruby:

@itemlist += [Item.new(params[:nombreItem])]

Mejor algo como esto:

@itemlist << Item.new(params[:nombreItem])]

Saludos.

Muchísimas gracias

El problema venía por ahí. Ahora hago esto en la definición

def initialize
super
if ($itemlist.first == “”)
$itemlist << Item.new(‘1’)
<< Item.new(‘2’)
<< Item.new(‘3’)
end
end

Y luego lo añado así:

def addItem
if (params[:nombreItem]) then
$itemlist << Item.new(params[:nombreItem])
end
end

Con esto sólo la primera petición http inicializa $itemlist y el resto
añade.

Lo dicho. Muchísimas gracias

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs