Forum: Rails-ES Volcar de BBDD a Array

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
3bad218882602f4c35ea15adb3e5d5a4?d=identicon&s=25 Fernando Calatayud (fernan2)
on 2008-11-04 19:31
Hola, tengo algo entre manos que debería ser sencillo, pero no lo acabo
de sacar...

Tengo una SQL que me devuelve cuatro registros, cada uno de ellos con un
sólo campo de texto (para cargar una lista de opciones):

"OpcA", "OpcB", "OpcC", "OpcD"

Lo que quisiera es guardarme el resultado en forma de array de strings,
que es como espera recibirlo la función que los procesa:
["OpcA", "OpcB", "OpcC", "OpcD"]

Pero el Opciones.find() lo que me genera es un array de objetos:
[#<Opcion nombre: "OpcA">, #<Opcion nombre: "OpcB">, #<Opcion nombre:
"OpcC">, #<Opcion nombre: "OpcD">]

¿sabéis cómo puedo atacar a la BBDD para sacar un array de strings, sin
vincularlo a objetos? En otros lenguajes es trivial, pero en RoR no lo
encuentro...

s2
45742831d67c80d12cd7b24907b8d760?d=identicon&s=25 Sergio Gil Pérez de la Manga (Guest)
on 2008-11-04 19:51
(Received via mailing list)
2008/11/4 Fernando Calatayud <ruby-forum-incoming@andreas-s.net>:
> ["OpcA", "OpcB", "OpcC", "OpcD"]
>
> Pero el Opciones.find() lo que me genera es un array de objetos:
> [#<Opcion nombre: "OpcA">, #<Opcion nombre: "OpcB">, #<Opcion nombre:
> "OpcC">, #<Opcion nombre: "OpcD">]
>
> ¿sabéis cómo puedo atacar a la BBDD para sacar un array de strings, sin
> vincularlo a objetos? En otros lenguajes es trivial, pero en RoR no lo
> encuentro...
>

http://apidock.com/ruby/Array/map

--
Sergio Gil Pérez de la Manga
e-mail > sgilperez@gmail.com
blog > http://www.lacoctelera.com/porras
now > http://twitter.com/porras
95a697de2d566b3d83b3183eab805ccf?d=identicon&s=25 Jorge Santiago (Guest)
on 2008-11-04 20:17
(Received via mailing list)
En estos casos es muy útil la extensión to_proc que hace rails a la
clase Symbol:

http://api.rubyonrails.org/classes/Symbol.html

En tu caso:

Opciones.find(:all).collect(&:nombre)
3bad218882602f4c35ea15adb3e5d5a4?d=identicon&s=25 Fernando Calatayud (fernan2)
on 2008-11-04 20:19
Ok, muchas gracias!! Ya sabía yo que no tendría que montar un bucle para
esto...

s2
F625b891618be8ec32547a07b3192bb0?d=identicon&s=25 Francesc Esplugas (fesplugas)
on 2008-11-04 20:20
(Received via mailing list)
Eso creo que lo podrias hacer con serialize.

Dentro de tu modelo pones:

     serialize :attributo

Y a partir de ahí le pues meter objetos ruby.

On 04/11/2008, at 19:31, Fernando Calatayud
<ruby-forum-incoming@andreas-s.net
Bc309914890c202136d6964cb3033ceb?d=identicon&s=25 cartuchoGL (Guest)
on 2008-11-04 20:26
(Received via mailing list)
Fernando Calatayud escribió:
> ["OpcA", "OpcB", "OpcC", "OpcD"]
>
A parte de como ya han comentado podrias usar select_values [1] de la
conexion de ActiveRecord

ActiveRecord::Base.connection.select_values("SELECT column FROM models")
=> ["value","value",...]


[1]
http://api.rubyonrails.org/classes/ActiveRecord/Co...
This topic is locked and can not be replied to.