Duda sobre Ruby On Rails

Agregar a favoritos

5 Comentarios

Posteado hace 1425 días en:

No es que quiera aprender ni mucho menos el lenguaje (php me da todo lo que quiero) pero me he leído una pequeña guía y no logro entender algunas partes de Rails. La duda que tengo son sobre las palabras reservadas que hay en RoR, ¿que son exactamente? son defines como en php o son simplemente cadenas de texto?, y si son cadenas porque no van entre comillas?. Es algo que no logro entender, más que nada sobre los dichosos dos puntos delante de cada palabra.

Ejemplo:


def hello_ip
    location = request.env["REMOTE_IP"]
    render :text => "Hello stranger from #{location}<a href="text">
end

¿que es exactamente” ?


  • avatar

    julis (ex-JLC)#1 hace 1425 días

    Daniiiiiiiii,

    Que pasa pisha!!!

    Veo que sigues con lo tuyo y que cada vez controlas más, deja un poco para los demás que esto de phpear uffff….yo estoy empezando ahora y hace un año que dije que lo haría, en fin…...

    1abrazo!!

  • avatar

    Vixx#2 hace 1424 días

    Los dos puntos indican que es un símbolo. Estos se comportan de forma similar a los Strings sólo que cada símbolo tiene una única representación en memoria, por lo que no ocupan más espacio si se referencian varias veces.

    Ej:

    var = “foo”
    var2 = “foo”

    ocuparía el doble de memoria que:

    var= :foo
    var2 = :foo

    Esto hace que sean muy utilizados como índices en hashes (similares a los arrays asociativos en PHP).

    En el ejemplo, en PHP sería algo como:

    render(array(“text” => “Hello ….” ));

  • avatar

    Icebeat#3 hace 1423 días

    Un abrazo Julis, espero que vaya todo bien ;P.
    Muchas gracias Vixx por el apunte, me has quitado un peso de encima, me gusta entender como funcionan las cosas, aunque sea lo mas basico.

  • avatar

    Hector Vergara#4 hace 1385 días

    como dice vixx, son como arrays asociativos. Al igual que python, ruby permite pasar parametros a una funcion sin un orden especifico (no asi en php).

    saludos!

  • avatar

    Icebeat#5 hace 1384 días

    Vaya, gracias tambien por el apunte Hector.