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
2008/11/4 Fernando C. [email protected]:
[“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 > [email protected]
blog > http://www.lacoctelera.com/porras
now > http://twitter.com/porras
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)
Ok, muchas gracias!! Ya sabÃa yo que no tendrÃa que montar un bucle para
esto…
s2
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 C.
<[email protected]
Fernando C. 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/ConnectionAdapters/DatabaseStatements.html#M001465