Sintaxis


#1

Tengo unas dudas muy basicas sobre Ruby, y es que, por ejemplo:

class Tag < ActiveRecord::Base
belongs_to :taggable, :polymorphic => true
end

Este belongs_to, que es? un metodo de ActiveRecord::Base? Y todo lo
que hay detras, es un hash? Y por que se usan simbolos para
referenciar una propiedad?
Lo encuentro un poco confuso, aunque seguramente soy yo que no estoy
acostumbrado.

Gracias


#2

On 2/26/07, Dani P. removed_email_address@domain.invalid wrote:

class Tag < ActiveRecord::Base
belongs_to :taggable, :polymorphic => true
end

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#M000644

Usa la documentación de la API para todas estas dudas, es mucho
másrápido que la lista.

Este belongs_to, que es? un metodo de ActiveRecord::Base? Y todo lo
que hay detras, es un hash? Y por que se usan simbolos para
referenciar una propiedad?

¡Te has respondido tú mismo a todo! :smiley:

Respecto al uso de símbolos, es más una cuestión de rendimiento que
cualquier otra cosa (aunque aquí hay opiniones dispares), yo lo
comprendí gracias a este post:

http://glu.ttono.us/articles/2005/08/19/understanding-ruby-symbols

Lo encuentro un poco confuso aunque seguramente soy yo que
no estoy acostumbrado.

Seguramente.

Un saludo

David A., el único desarrollador con una orden de alejamiento de
Jeffrey Zeldman
Simplelogica.net, ahora con un 33,3% más de intromisión en listas de correo

Cuando no hago otra cosa escribo en mildiez.net


#3

Hola
Voy a intentar una respuesta :wink:
Rails hace uso, no se si abuso, de mucha de la versatilidad de ruby, una
recorrida por el código de Rails es un viaje por el mundo de ruby para
la
mayoría de nosotros desconocido…

La cosa es mas o menos así
belong_to es un método de clase de ActiveRecord, lo que hace es
“agregarle”
a la clase Tag métodos que le permitirán interactuar con :taggable de
una
forma muy sencilla.
El segundo parámetro de belongs_to es un hash de opciones, una forma muy
común de pasar los valores.

Por qué simbolos? es porque los símbolos del mismo nombre ocupan menos
memoria que los strings, los símbolos referencian una misma posición de
memoria.

el resto el leer código y jugar con irb :wink:

Saludos
Hernán


#4

2007/2/26, Hernan F. removed_email_address@domain.invalid:

Por qué simbolos? es porque los símbolos del mismo nombre ocupan menos
memoria que los strings, los símbolos referencian una misma posición de
memoria.

Entonces podria esa clase reescribirse algo asi como

class Tag < ActiveRecord::Base
belongs_to (“taggable”, {“polymorphic” => “true”})
end

Me refiero para entender que es que… A ver si hoy lo pruebo. Gracias!