Buenas,
llevo tiempo atrancado en lo que creo que es una tonterÃa.
Tengo un hash del tipo
@datos= {
:nombre=>“Pedro”,
:apellidos=>“Marin”,
:agenda_id=>5
}
y un array con los campos que quiero modificar
campos = [:nombre, :agenda_id]
Estoy haciendo una función a la que le paso @campos y que dependiendo
del
tipo de dato (String o Number) me cambie el valor en @datos
por ejm:
def mod_datos(campos)
@campos.each {|index|
if @datos[index].is_a?(String)
@datos[index] = “”+@datos[index]+""
else
@campos[index] = @datos[index]+5
end
}
end
si ejecuto mod_datos(campos) deberia quedar @datos asi
@datos= {
:nombre=>“Pedro”,
:apellidos=>“Marin”,
:agenda_id=>10
}
el problema, al ser el Ãndice un sÃmbolo no consigo “recuperarlo” en el
each
¿Como puedo recorrer el obtener y usar los simbolos al recorrer un hash
o un
array?
¿Puedo convertir una cadena en un sÃmbolo?
Espero haberme explicado. Gracias.
lo tienes bien. el problema está en que en la segunda condición estás
intentando modificar el valor de @campos en lugar de @datos. serÃa algo
asÃ:
…
else
@datos[index] = @datos[index] + 5
end
de todas maneras veo que estás modificando variables de instancia pero
estás pasando un parámetro que finalmente no utilizas, lo que no tendrÃa
mucho sentido…
saludos
On Sat, 2006-12-02 at 01:36 +0100, Pedro MarÃn wrote:
}
por ejm:
Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es
–
/**
El parametro campos lo uso en el iterador (en el ejmplo le sobra la @),
es
el que me dice que campos voy a modificar.
Que fallo mas tonto, ese es el problema de no descansar cuando te pasan
estas cosas.
Gracias!!!
2006/12/2, Borja MartÃn [email protected]:
Hola Pedro
Tené en cuenta que el each sobre un Hash te envía como parámetro al
bloque un Array con dos argumentos: key y value.
Una forma de hacer esto sería:
def mod_datos(campos)
campos.each do |key, value|
if @datos[key].is_a?(String)
@datos[key] = “”+@datos[key]+""
else
@datos[key] = @datos[key]+5
end
end
end
La forma de “convertir” un String en un Symbol es String#to_sym
saludos!
Que yo sepa a nivel global no lo tienen instalado, e instalartelo tú
a
nivel personal supongo que sí que se podrá, aunque nunca he visto
ningún tutorial ni documentación al respecto.
Otra cosa es que te funcione, puesto que seguro tienen la mayoría de
puertos capados, pero no sé si esto llegará a ser un problema para
comunicarse con otro proceso dentro de la misma máquina.
Un saludo.
se puede usar memcached en dreamhost?¿
supongo q no porque no lo encuentro…
gracias
marze
[email protected]