# Hacer un insert en un ciclo

**URL:** <https://www.ruby-forum.com/t/hacer-un-insert-en-un-ciclo/184403>\
**Category:** Ruby\
**Created:** [March 2, 2010, 12:10am UTC](https://www.ruby-forum.com/t/hacer-un-insert-en-un-ciclo/184403 "2010-03-02T00:10:56Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![k\_liliana](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/858c86/32.png) [@k\_liliana](https://www.ruby-forum.com/u/k_liliana)\
**Post date:** [March 2, 2010, 12:10am UTC](https://www.ruby-forum.com/t/hacer-un-insert-en-un-ciclo/184403/1 "2010-03-02T00:10:56Z")

</div>

Hola.

quiero hacer un insert a mi base de datos mediante un ciclo  
es decir que en el cliclo este la columna y el valor. de los datos  
alguien sabe si se puede?

inventario\_tem = InventarioTem.new(  
while @y \< @datostotales.length do

```
  @columna => @datostotales[@y])

@y+=1

```

end  
inventario\_tem.save

muchas gracias

---

<div class="post-metadata">

**Author:** ![k\_liliana](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/858c86/32.png) [@k\_liliana](https://www.ruby-forum.com/u/k_liliana)\
**Post date:** [March 2, 2010, 12:24am UTC](https://www.ruby-forum.com/t/hacer-un-insert-en-un-ciclo/184403/2 "2010-03-02T00:24:24Z")

</div>

2010/3/1 Karla G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Hola.
> 
> quiero hacer un insert a mi base de datos mediante un ciclo  
> es decir que en el cliclo este la columna y el valor. de los datos  
> alguien sabe si se puede?

This doesn’t seem very efficient.  
Second, could you please speak in english. Even with google translate,  
the technical message  
is lost.

Andrew McElroy

---

<div class="post-metadata">

**Author:** ![k\_liliana](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/858c86/32.png) [@k\_liliana](https://www.ruby-forum.com/u/k_liliana)\
**Post date:** [March 2, 2010, 12:29am UTC](https://www.ruby-forum.com/t/hacer-un-insert-en-un-ciclo/184403/3 "2010-03-02T00:29:40Z")

</div>

On Mon, Mar 1, 2010 at 5:18 PM, andrew mcelroy [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> is lost.

por favor tu habla Inglés.

Andrew McElroy

---

<div class="post-metadata">

**Author:** ![k\_liliana](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/858c86/32.png) [@k\_liliana](https://www.ruby-forum.com/u/k_liliana)\
**Post date:** [March 2, 2010, 1:31am UTC](https://www.ruby-forum.com/t/hacer-un-insert-en-un-ciclo/184403/4 "2010-03-02T01:31:08Z")

</div>

On Mar 1, 2010, at 15:10 , Karla G. wrote:

> @y+=1  
> end # CLOSE 2  
> inventario\_tem.save

([)]

No entiendo.

---

<div class="post-metadata">

**Author:** ![k\_liliana](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/858c86/32.png) [@k\_liliana](https://www.ruby-forum.com/u/k_liliana)\
**Post date:** [March 2, 2010, 12:35am UTC](https://www.ruby-forum.com/t/hacer-un-insert-en-un-ciclo/184403/5 "2010-03-02T00:35:55Z")

</div>

Andrew Mcelroy wrote:

> On Mon, Mar 1, 2010 at 5:18 PM, andrew mcelroy [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> wrote:
> 
> > is lost.
> 
> por favor tu habla Inglï¿½s.
> 
> Andrew McElroy

thanks

---

<div class="post-metadata">

**Author:** ![k\_liliana](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/858c86/32.png) [@k\_liliana](https://www.ruby-forum.com/u/k_liliana)\
**Post date:** [March 2, 2010, 1:33am UTC](https://www.ruby-forum.com/t/hacer-un-insert-en-un-ciclo/184403/6 "2010-03-02T01:33:29Z")

</div>

On Mar 1, 2010, at 15:10 , Karla G. wrote:

> @y+=1  
> end # CLOSE 2  
> inventario\_tem.save

([)]

No entiendo.

---

<div class="post-metadata">

**Author:** ![k\_liliana](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/858c86/32.png) [@k\_liliana](https://www.ruby-forum.com/u/k_liliana)\
**Post date:** [March 2, 2010, 1:24pm UTC](https://www.ruby-forum.com/t/hacer-un-insert-en-un-ciclo/184403/7 "2010-03-02T13:24:40Z")

</div>

Karla G. wrote:

> inventario\_tem = InventarioTem.new(  
> while @y \< @datostotales.length do
> 
> ```
> @columna => @datostotales[@y])
> 
> @y+=1
> 
> ```
> 
> end  
> inventario\_tem.save

I am guessing that what you want to do is this:

datostotales = {“foo”=\>123, “bar”=\>456"}  
inventario\_tem = InventarioTem.new(datostotales)  
inventario\_tem.save

OR:

columna = [“foo”, “bar”]  
datostotales = [123, 456]  
inventario\_tem = InventarioTem.new  
columna.each\_with\_index do |col,i|  
inventario\_tem.send("#{col}=", datostotales[i])  
end  
inventario\_tem.save

or you can combine the two like this:

columna = [“foo”, “bar”]  
datostotales = [123, 456]  
inventario\_tem =  
InventarioTem.new(Hash[\*columna.zip(datostotales).flatten])  
inventario\_tem.save

---

<div class="post-metadata">

**Author:** ![k\_liliana](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/858c86/32.png) [@k\_liliana](https://www.ruby-forum.com/u/k_liliana)\
**Post date:** [March 2, 2010, 11:13am UTC](https://www.ruby-forum.com/t/hacer-un-insert-en-un-ciclo/184403/8 "2010-03-02T11:13:32Z")

</div>

2010/3/2 Karla G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Â Â @y+=1  
> Â end  
> inventario\_tem.save

Eso asi mismo no funciona, te daria una alternativa pero sin mas  
detalles no cuadra mucho que @columna sea fijo.

Esta es una lista en ingles de todos modos, si no sabes ingles por  
favor envia tu consulta a la lista ror-es.

---

<div class="post-metadata">

**Author:** ![k\_liliana](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/858c86/32.png) [@k\_liliana](https://www.ruby-forum.com/u/k_liliana)\
**Post date:** [March 3, 2010, 8:08pm UTC](https://www.ruby-forum.com/t/hacer-un-insert-en-un-ciclo/184403/9 "2010-03-03T20:08:30Z")

</div>

Brian C. wrote:

> I am guessing that what you want to do is this:
> 
> datostotales = {“foo”=\>123, “bar”=\>456"}  
> inventario\_tem = InventarioTem.new(datostotales)  
> inventario\_tem.save
> 
> OR:
> 
> columna = [“foo”, “bar”]  
> datostotales = [123, 456]  
> inventario\_tem = InventarioTem.new  
> columna.each\_with\_index do |col,i|  
> inventario\_tem.send("#{col}=", datostotales[i])  
> end  
> inventario\_tem.save
> 
> or you can combine the two like this:
> 
> columna = [“foo”, “bar”]  
> datostotales = [123, 456]  
> inventario\_tem =  
> InventarioTem.new(Hash[\*columna.zip(datostotales).flatten])  
> inventario\_tem.save

Thanks Brian  
your explanation was very helpful  
And sorry for not writing in english, I am very distracted
